Migrate app to Node Electron with modern React UI
Build and Release / build (push) Has been cancelled
Build and Release / build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { parsePackagesFromLinksText, isHttpLink, sanitizeFilename, formatEta } from "../src/main/utils";
|
||||
|
||||
describe("utils", () => {
|
||||
it("validates http links", () => {
|
||||
expect(isHttpLink("https://example.com/file")).toBe(true);
|
||||
expect(isHttpLink("http://example.com/file")).toBe(true);
|
||||
expect(isHttpLink("ftp://example.com")).toBe(false);
|
||||
expect(isHttpLink("foo bar")).toBe(false);
|
||||
});
|
||||
|
||||
it("sanitizes filenames", () => {
|
||||
expect(sanitizeFilename("foo/bar:baz*")).toBe("foo bar baz");
|
||||
expect(sanitizeFilename(" ")).toBe("Paket");
|
||||
});
|
||||
|
||||
it("parses package markers", () => {
|
||||
const parsed = parsePackagesFromLinksText(
|
||||
"# package: A\nhttps://a.com/1\nhttps://a.com/2\n# package: B\nhttps://b.com/1\n",
|
||||
"Default"
|
||||
);
|
||||
expect(parsed).toHaveLength(2);
|
||||
expect(parsed[0].name).toBe("A");
|
||||
expect(parsed[0].links).toHaveLength(2);
|
||||
expect(parsed[1].name).toBe("B");
|
||||
});
|
||||
|
||||
it("formats eta", () => {
|
||||
expect(formatEta(-1)).toBe("--");
|
||||
expect(formatEta(65)).toBe("01:05");
|
||||
expect(formatEta(3661)).toBe("01:01:01");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user