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();
|