mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 15:48:28 +00:00
refactor(test): dedupe update-cli downgrade setup
This commit is contained in:
@@ -176,6 +176,39 @@ describe("update-cli", () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const setupNonInteractiveDowngrade = async () => {
|
||||||
|
const tempDir = await createCaseDir("openclaw-update");
|
||||||
|
setTty(false);
|
||||||
|
readPackageVersion.mockResolvedValue("2.0.0");
|
||||||
|
|
||||||
|
vi.mocked(resolveOpenClawPackageRoot).mockResolvedValue(tempDir);
|
||||||
|
vi.mocked(checkUpdateStatus).mockResolvedValue({
|
||||||
|
root: tempDir,
|
||||||
|
installKind: "package",
|
||||||
|
packageManager: "npm",
|
||||||
|
deps: {
|
||||||
|
manager: "npm",
|
||||||
|
status: "ok",
|
||||||
|
lockfilePath: null,
|
||||||
|
markerPath: null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
vi.mocked(resolveNpmChannelTag).mockResolvedValue({
|
||||||
|
tag: "latest",
|
||||||
|
version: "0.0.1",
|
||||||
|
});
|
||||||
|
vi.mocked(runGatewayUpdate).mockResolvedValue({
|
||||||
|
status: "ok",
|
||||||
|
mode: "npm",
|
||||||
|
steps: [],
|
||||||
|
durationMs: 100,
|
||||||
|
});
|
||||||
|
vi.mocked(defaultRuntime.error).mockClear();
|
||||||
|
vi.mocked(defaultRuntime.exit).mockClear();
|
||||||
|
|
||||||
|
return tempDir;
|
||||||
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
confirm.mockReset();
|
confirm.mockReset();
|
||||||
select.mockReset();
|
select.mockReset();
|
||||||
@@ -528,34 +561,7 @@ describe("update-cli", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("requires confirmation on downgrade when non-interactive", async () => {
|
it("requires confirmation on downgrade when non-interactive", async () => {
|
||||||
const tempDir = await createCaseDir("openclaw-update");
|
await setupNonInteractiveDowngrade();
|
||||||
setTty(false);
|
|
||||||
readPackageVersion.mockResolvedValue("2.0.0");
|
|
||||||
|
|
||||||
vi.mocked(resolveOpenClawPackageRoot).mockResolvedValue(tempDir);
|
|
||||||
vi.mocked(checkUpdateStatus).mockResolvedValue({
|
|
||||||
root: tempDir,
|
|
||||||
installKind: "package",
|
|
||||||
packageManager: "npm",
|
|
||||||
deps: {
|
|
||||||
manager: "npm",
|
|
||||||
status: "ok",
|
|
||||||
lockfilePath: null,
|
|
||||||
markerPath: null,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
vi.mocked(resolveNpmChannelTag).mockResolvedValue({
|
|
||||||
tag: "latest",
|
|
||||||
version: "0.0.1",
|
|
||||||
});
|
|
||||||
vi.mocked(runGatewayUpdate).mockResolvedValue({
|
|
||||||
status: "ok",
|
|
||||||
mode: "npm",
|
|
||||||
steps: [],
|
|
||||||
durationMs: 100,
|
|
||||||
});
|
|
||||||
vi.mocked(defaultRuntime.error).mockClear();
|
|
||||||
vi.mocked(defaultRuntime.exit).mockClear();
|
|
||||||
|
|
||||||
await updateCommand({});
|
await updateCommand({});
|
||||||
|
|
||||||
@@ -566,34 +572,7 @@ describe("update-cli", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("allows downgrade with --yes in non-interactive mode", async () => {
|
it("allows downgrade with --yes in non-interactive mode", async () => {
|
||||||
const tempDir = await createCaseDir("openclaw-update");
|
await setupNonInteractiveDowngrade();
|
||||||
setTty(false);
|
|
||||||
readPackageVersion.mockResolvedValue("2.0.0");
|
|
||||||
|
|
||||||
vi.mocked(resolveOpenClawPackageRoot).mockResolvedValue(tempDir);
|
|
||||||
vi.mocked(checkUpdateStatus).mockResolvedValue({
|
|
||||||
root: tempDir,
|
|
||||||
installKind: "package",
|
|
||||||
packageManager: "npm",
|
|
||||||
deps: {
|
|
||||||
manager: "npm",
|
|
||||||
status: "ok",
|
|
||||||
lockfilePath: null,
|
|
||||||
markerPath: null,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
vi.mocked(resolveNpmChannelTag).mockResolvedValue({
|
|
||||||
tag: "latest",
|
|
||||||
version: "0.0.1",
|
|
||||||
});
|
|
||||||
vi.mocked(runGatewayUpdate).mockResolvedValue({
|
|
||||||
status: "ok",
|
|
||||||
mode: "npm",
|
|
||||||
steps: [],
|
|
||||||
durationMs: 100,
|
|
||||||
});
|
|
||||||
vi.mocked(defaultRuntime.error).mockClear();
|
|
||||||
vi.mocked(defaultRuntime.exit).mockClear();
|
|
||||||
|
|
||||||
await updateCommand({ yes: true });
|
await updateCommand({ yes: true });
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user