Consolidate vitest CI & coverage (#33808)
* 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
This commit is contained in:
@@ -7,9 +7,13 @@ 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 } from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
import { getBuildConfig } from "./build-config.js";
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
vi.mock("node:fs", () => ({ default: memfs }));
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -19,13 +23,16 @@ beforeEach(() => {
|
||||
|
||||
describe("getBuildConfig", () => {
|
||||
it("should read fields from package.json correctly", () => {
|
||||
vol.fromJSON({
|
||||
"package.json": JSON.stringify({
|
||||
electron_appId: "app.id",
|
||||
electron_protocol: "proto",
|
||||
electron_windows_cert_sn: "subject.name",
|
||||
}),
|
||||
});
|
||||
vol.fromJSON(
|
||||
{
|
||||
"../package.json": JSON.stringify({
|
||||
electron_appId: "app.id",
|
||||
electron_protocol: "proto",
|
||||
electron_windows_cert_sn: "subject.name",
|
||||
}),
|
||||
},
|
||||
__dirname,
|
||||
);
|
||||
|
||||
const config = getBuildConfig();
|
||||
expect(config.appId).toBe("app.id");
|
||||
|
||||
@@ -7,10 +7,13 @@ 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 path from "node:path";
|
||||
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(() => {
|
||||
@@ -25,20 +28,20 @@ describe("getIconPath", () => {
|
||||
"build/icon.png": "png",
|
||||
"build/icon.ico": "ico",
|
||||
},
|
||||
"../webapp",
|
||||
resolve(__dirname, "../webapp"),
|
||||
);
|
||||
});
|
||||
|
||||
it("should use .ico on Windows", async () => {
|
||||
vi.spyOn(process, "platform", "get").mockReturnValue("win32");
|
||||
await expect(getIconPath()).resolves.toEqual(path.resolve("../build/icon.ico"));
|
||||
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(path.resolve("../build/icon.png"));
|
||||
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(path.resolve("../build/icon.png"));
|
||||
await expect(getIconPath()).resolves.toEqual(resolve(__dirname, "../build/icon.png"));
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user