perf(test): simplify update-check mock in update CLI tests

This commit is contained in:
Peter Steinberger
2026-02-14 18:25:09 +00:00
parent d5a724fbee
commit 12565661a3

View File

@@ -34,12 +34,46 @@ vi.mock("../config/config.js", () => ({
writeConfigFile: vi.fn(),
}));
vi.mock("../infra/update-check.js", async () => {
const actual = await vi.importActual<typeof import("../infra/update-check.js")>(
"../infra/update-check.js",
);
vi.mock("../infra/update-check.js", () => {
const parseSemver = (
value: string | null,
): { major: number; minor: number; patch: number } | null => {
if (!value) {
return null;
}
const m = /^(\d+)\.(\d+)\.(\d+)/.exec(value);
if (!m) {
return null;
}
const major = Number(m[1]);
const minor = Number(m[2]);
const patch = Number(m[3]);
if (!Number.isFinite(major) || !Number.isFinite(minor) || !Number.isFinite(patch)) {
return null;
}
return { major, minor, patch };
};
const compareSemverStrings = (a: string | null, b: string | null): number | null => {
const pa = parseSemver(a);
const pb = parseSemver(b);
if (!pa || !pb) {
return null;
}
if (pa.major !== pb.major) {
return pa.major < pb.major ? -1 : 1;
}
if (pa.minor !== pb.minor) {
return pa.minor < pb.minor ? -1 : 1;
}
if (pa.patch !== pb.patch) {
return pa.patch < pb.patch ? -1 : 1;
}
return 0;
};
return {
...actual,
compareSemverStrings,
checkUpdateStatus: vi.fn(),
fetchNpmTagVersion: vi.fn(),
resolveNpmChannelTag: vi.fn(),