Files
wehub-resource-sync 070959e133
landing-page-staging / Deploy landing page to staging (push) Has been skipped
landing-page-ci / Validate landing page (push) Failing after 4s
visual-baseline / Capture visual baselines (push) Has been cancelled
bake-plugin-previews / Bake plugin previews (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:00:47 +08:00

44 lines
1.7 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
resolveElectronBuilderWinTargets,
resolveWinTargets,
shouldBuildWinNsisInstaller,
shouldBuildWinPortableZip,
} from "../src/win/report.js";
describe("resolveWinTargets", () => {
it("returns the full target set including the portable zip for `all`", () => {
expect(resolveWinTargets("all")).toEqual(["dir", "nsis", "zip"]);
});
it("returns only the requested single target", () => {
expect(resolveWinTargets("dir")).toEqual(["dir"]);
expect(resolveWinTargets("nsis")).toEqual(["nsis"]);
expect(resolveWinTargets("zip")).toEqual(["zip"]);
});
});
describe("resolveElectronBuilderWinTargets", () => {
it("hides the portable zip from electron-builder because it is built from the cached unpacked dir", () => {
expect(resolveElectronBuilderWinTargets("zip")).toEqual(["dir"]);
expect(resolveElectronBuilderWinTargets("all")).toEqual(["dir", "nsis"]);
expect(resolveElectronBuilderWinTargets("nsis")).toEqual(["nsis"]);
expect(resolveElectronBuilderWinTargets("dir")).toEqual(["dir"]);
});
});
describe("shouldBuildWinNsisInstaller / shouldBuildWinPortableZip", () => {
it("flags the NSIS installer and portable zip independently", () => {
expect(shouldBuildWinNsisInstaller("nsis")).toBe(true);
expect(shouldBuildWinNsisInstaller("all")).toBe(true);
expect(shouldBuildWinNsisInstaller("zip")).toBe(false);
expect(shouldBuildWinNsisInstaller("dir")).toBe(false);
expect(shouldBuildWinPortableZip("zip")).toBe(true);
expect(shouldBuildWinPortableZip("all")).toBe(true);
expect(shouldBuildWinPortableZip("nsis")).toBe(false);
expect(shouldBuildWinPortableZip("dir")).toBe(false);
});
});