mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	test(formatDownloadTitle): add basic test
for some reason this will not run well with `tsx -r esm` though I've used the built-in node TS runner for now, which works: `node --experimental-transform-types`
This commit is contained in:
		
							
								
								
									
										129
									
								
								spec-es6/utils/formatDownloadTitle.spec.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								spec-es6/utils/formatDownloadTitle.spec.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,129 @@ | |||||||
|  | import { formatDownloadTitle } from "../../src/services/utils.ts"; | ||||||
|  | import { describe, it, execute, expect } from "../mini_test.ts"; | ||||||
|  |  | ||||||
|  | const testCases: [fnValue: Parameters<typeof formatDownloadTitle>, expectedValue: ReturnType<typeof formatDownloadTitle>][] = [ | ||||||
|  |   // empty fileName tests | ||||||
|  |   [ | ||||||
|  |     ["", "text", ""], | ||||||
|  |     "untitled.html" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["", "canvas", ""], | ||||||
|  |     "untitled.json" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["", null, ""], | ||||||
|  |     "untitled" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   // json extension from type tests | ||||||
|  |   [ | ||||||
|  |     ["test_file", "canvas", ""], | ||||||
|  |     "test_file.json" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file", "relationMap", ""], | ||||||
|  |     "test_file.json" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file", "search", ""], | ||||||
|  |     "test_file.json" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   // extension based on mime type | ||||||
|  |   [ | ||||||
|  |     ["test_file", null, "text/csv"], | ||||||
|  |     "test_file.csv" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file_wo_ext", "image", "image/svg+xml"], | ||||||
|  |     "test_file_wo_ext.svg" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file_wo_ext", "file", "application/json"], | ||||||
|  |     "test_file_wo_ext.json" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file_w_fake_ext.ext", "image", "image/svg+xml"], | ||||||
|  |     "test_file_w_fake_ext.ext.svg" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file_w_correct_ext.svg", "image", "image/svg+xml"], | ||||||
|  |     "test_file_w_correct_ext.svg" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file_w_correct_ext.svgz", "image", "image/svg+xml"], | ||||||
|  |     "test_file_w_correct_ext.svgz" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file.zip", "file", "application/zip"], | ||||||
|  |     "test_file.zip" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file", "file", "application/zip"], | ||||||
|  |     "test_file.zip" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   // application/octet-stream tests | ||||||
|  |   [ | ||||||
|  |     ["test_file", "file", "application/octet-stream"], | ||||||
|  |     "test_file" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file.zip", "file", "application/octet-stream"], | ||||||
|  |     "test_file.zip" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test_file.unknown", null, "application/octet-stream"], | ||||||
|  |     "test_file.unknown" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   // sanitized filename tests | ||||||
|  |   [ | ||||||
|  |     ["test/file", null, "application/octet-stream"], | ||||||
|  |     "testfile" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     ["test:file.zip", "file", "application/zip"], | ||||||
|  |     "testfile.zip" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     [":::", "file", "application/zip"], | ||||||
|  |     ".zip" | ||||||
|  |   ], | ||||||
|  |  | ||||||
|  |   [ | ||||||
|  |     [":::a", "file", "application/zip"], | ||||||
|  |     "a.zip" | ||||||
|  |   ], | ||||||
|  | ] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | describe("utils/formatDownloadTitle unit tests", () => { | ||||||
|  |  | ||||||
|  |   testCases.forEach(testCase => { | ||||||
|  |     return it(`With args '${JSON.stringify(testCase[0])}' it should return '${testCase[1]}'`, () => { | ||||||
|  |       const [value, expected] = testCase; | ||||||
|  |       const actual = formatDownloadTitle(...value); | ||||||
|  |       expect(actual).toEqual(expected); | ||||||
|  |     }) | ||||||
|  |   }) | ||||||
|  |  | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | execute() | ||||||
		Reference in New Issue
	
	Block a user