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