| 
									
										
										
										
											2025-01-03 11:42:27 +01:00
										 |  |  | 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>][] = [ | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     // empty fileName tests
 | 
					
						
							|  |  |  |     [["", "text", ""], "untitled.html"], | 
					
						
							| 
									
										
										
										
											2025-01-03 11:42:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     [["", "canvas", ""], "untitled.json"], | 
					
						
							| 
									
										
										
										
											2025-01-03 11:42:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     [["", 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"], | 
					
						
							| 
									
										
										
										
											2025-01-03 11:42:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     [["test_file_w_correct_ext.svgz", "image", "image/svg+xml"], "test_file_w_correct_ext.svgz"], | 
					
						
							| 
									
										
										
										
											2025-01-03 11:42:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     [["test_file.zip", "file", "application/zip"], "test_file.zip"], | 
					
						
							| 
									
										
										
										
											2025-01-03 11:42:27 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     [["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(); |