* Consolidate modules vitest coverage * Use vite-common as base for modules vitest config * Make knip happier * Fix coverage paths * Place modules unit tests alongside src * Switch to defineProject for better type safety * Consolidate vitest CI & coverage Kills off vite-common * Update comment * Update lockfile * Fix shared-components vitest config * Soften eslint config for tests in modules * Run eslint on modules/playwright dir too * Make tsc happy
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
/*
|
|
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";
|
|
import { dirname, resolve } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
import { getIconPath } from "./icon.js";
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
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",
|
|
},
|
|
resolve(__dirname, "../webapp"),
|
|
);
|
|
});
|
|
|
|
it("should use .ico on Windows", async () => {
|
|
vi.spyOn(process, "platform", "get").mockReturnValue("win32");
|
|
await expect(getIconPath()).resolves.toEqual(resolve(__dirname, "../build/icon.ico"));
|
|
});
|
|
it("should use .png on macOS", async () => {
|
|
vi.spyOn(process, "platform", "get").mockReturnValue("darwin");
|
|
await expect(getIconPath()).resolves.toEqual(resolve(__dirname, "../build/icon.png"));
|
|
});
|
|
it("should use .png on Linux", async () => {
|
|
vi.spyOn(process, "platform", "get").mockReturnValue("linux");
|
|
await expect(getIconPath()).resolves.toEqual(resolve(__dirname, "../build/icon.png"));
|
|
});
|
|
});
|