mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 22:34:32 +00: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(),
|
writeConfigFile: vi.fn(),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
vi.mock("../infra/update-check.js", async () => {
|
vi.mock("../infra/update-check.js", () => {
|
||||||
const actual = await vi.importActual<typeof import("../infra/update-check.js")>(
|
const parseSemver = (
|
||||||
"../infra/update-check.js",
|
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 {
|
return {
|
||||||
...actual,
|
compareSemverStrings,
|
||||||
checkUpdateStatus: vi.fn(),
|
checkUpdateStatus: vi.fn(),
|
||||||
fetchNpmTagVersion: vi.fn(),
|
fetchNpmTagVersion: vi.fn(),
|
||||||
resolveNpmChannelTag: vi.fn(),
|
resolveNpmChannelTag: vi.fn(),
|
||||||
|
|||||||
Reference in New Issue
Block a user