mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 11:39:01 +01:00 
			
		
		
		
	 d173daa14e
			
		
	
	
		d173daa14e
		
	
	
	
	
		
			
			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`
		
			
				
	
	
		
			129 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 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() |