mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-09-01 12:27:41 +08:00
test(server/utils): move formatDownloadTitle tests to spec file
This commit is contained in:
parent
668cc7e1a4
commit
e6f5321444
@ -1,61 +0,0 @@
|
|||||||
import { expect, describe, it } from "vitest";
|
|
||||||
import { formatDownloadTitle } from "./utils.js";
|
|
||||||
|
|
||||||
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).toStrictEqual(expected);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
@ -72,4 +72,118 @@ describe.todo("#getResourceDir", () => {});
|
|||||||
|
|
||||||
describe.todo("#isMac", () => {});
|
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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user