mirror of
http://192.168.0.88:13333/lywsvip/openclaw-zero-token.git
synced 2026-05-19 00:39:33 +08:00
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
import { createNonExitingRuntime } from "../runtime.js";
|
|
|
|
const resolveCleanupPlanFromDisk = vi.fn();
|
|
const removePath = vi.fn();
|
|
const removeStateAndLinkedPaths = vi.fn();
|
|
const removeWorkspaceDirs = vi.fn();
|
|
|
|
vi.mock("../config/config.js", () => ({
|
|
isNixMode: false,
|
|
}));
|
|
|
|
vi.mock("./cleanup-plan.js", () => ({
|
|
resolveCleanupPlanFromDisk,
|
|
}));
|
|
|
|
vi.mock("./cleanup-utils.js", () => ({
|
|
removePath,
|
|
removeStateAndLinkedPaths,
|
|
removeWorkspaceDirs,
|
|
}));
|
|
|
|
const { uninstallCommand } = await import("./uninstall.js");
|
|
|
|
describe("uninstallCommand", () => {
|
|
const runtime = createNonExitingRuntime();
|
|
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
resolveCleanupPlanFromDisk.mockReturnValue({
|
|
stateDir: "/tmp/.openclaw",
|
|
configPath: "/tmp/.openclaw/openclaw.json",
|
|
oauthDir: "/tmp/.openclaw/credentials",
|
|
configInsideState: true,
|
|
oauthInsideState: true,
|
|
workspaceDirs: ["/tmp/.openclaw/workspace"],
|
|
});
|
|
removePath.mockResolvedValue({ ok: true });
|
|
removeStateAndLinkedPaths.mockResolvedValue(undefined);
|
|
removeWorkspaceDirs.mockResolvedValue(undefined);
|
|
vi.spyOn(runtime, "log").mockImplementation(() => {});
|
|
vi.spyOn(runtime, "error").mockImplementation(() => {});
|
|
});
|
|
|
|
it("recommends creating a backup before removing state or workspaces", async () => {
|
|
await uninstallCommand(runtime, {
|
|
state: true,
|
|
yes: true,
|
|
nonInteractive: true,
|
|
dryRun: true,
|
|
});
|
|
|
|
expect(runtime.log).toHaveBeenCalledWith(expect.stringContaining("openclaw backup create"));
|
|
});
|
|
|
|
it("does not recommend backup for service-only uninstall", async () => {
|
|
await uninstallCommand(runtime, {
|
|
service: true,
|
|
yes: true,
|
|
nonInteractive: true,
|
|
dryRun: true,
|
|
});
|
|
|
|
expect(runtime.log).not.toHaveBeenCalledWith(expect.stringContaining("openclaw backup create"));
|
|
});
|
|
});
|