test(server/utils): move formatDownloadTitle tests to spec file

This commit is contained in:
Panagiotis Papadopoulos
2025-01-22 08:23:44 +01:00
parent 668cc7e1a4
commit e6f5321444
2 changed files with 115 additions and 62 deletions

View File

@@ -72,4 +72,118 @@ describe.todo("#getResourceDir", () => {});
describe.todo("#isMac", () => {});
describe.todo("#isWindows", () => {});
describe.todo("#isWindows", () => {});
describe("#formatDownloadTitle", () => {
//prettier-ignore
const testCases: [fnValue: Parameters<typeof utils.formatDownloadTitle>, expectedValue: ReturnType<typeof utils.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"
]
];
testCases.forEach((testCase) => {
const [fnParams, expected] = testCase;
return it(`With args '${JSON.stringify(fnParams)}', it should return '${expected}'`, () => {
const actual = utils.formatDownloadTitle(...fnParams);
expect(actual).toStrictEqual(expected);
});
});
});