mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-28 02:22:26 +08:00
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()
|