Files
ThreadNet-Web/apps/desktop/src/icon.test.ts
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.5 KiB
TypeScript
Raw Normal View History

2026-05-11 11:42:33 +01:00
/*
Copyright 2026 Element Creations Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
import { expect, describe, it, beforeEach, vi } from "vitest";
import { fs as memfs, vol } from "memfs";
2026-06-10 17:00:34 +01:00
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
2026-05-11 11:42:33 +01:00
import { getIconPath } from "./icon.js";
2026-06-10 17:00:34 +01:00
const __dirname = dirname(fileURLToPath(import.meta.url));
2026-05-11 11:42:33 +01:00
vi.mock("node:fs/promises", () => ({ default: memfs.promises }));
beforeEach(() => {
// Reset the state of the in-memory fs
vol.reset();
});
describe("getIconPath", () => {
beforeEach(() => {
vol.fromJSON(
{
"build/icon.png": "png",
"build/icon.ico": "ico",
},
2026-06-10 17:00:34 +01:00
resolve(__dirname, "../webapp"),
2026-05-11 11:42:33 +01:00
);
});
it("should use .ico on Windows", async () => {
vi.spyOn(process, "platform", "get").mockReturnValue("win32");
2026-06-10 17:00:34 +01:00
await expect(getIconPath()).resolves.toEqual(resolve(__dirname, "../build/icon.ico"));
2026-05-11 11:42:33 +01:00
});
it("should use .png on macOS", async () => {
vi.spyOn(process, "platform", "get").mockReturnValue("darwin");
2026-06-10 17:00:34 +01:00
await expect(getIconPath()).resolves.toEqual(resolve(__dirname, "../build/icon.png"));
2026-05-11 11:42:33 +01:00
});
it("should use .png on Linux", async () => {
vi.spyOn(process, "platform", "get").mockReturnValue("linux");
2026-06-10 17:00:34 +01:00
await expect(getIconPath()).resolves.toEqual(resolve(__dirname, "../build/icon.png"));
2026-05-11 11:42:33 +01:00
});
});