mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-03 03:03:24 -04:00
perf(test): simplify update-check mock in update CLI tests
This commit is contained in:
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user