diff --git a/src/cli/plugins-cli-test-helpers.ts b/src/cli/plugins-cli-test-helpers.ts index 1eef4d23caf..c751944caac 100644 --- a/src/cli/plugins-cli-test-helpers.ts +++ b/src/cli/plugins-cli-test-helpers.ts @@ -74,6 +74,12 @@ const uninstallPlugin: AsyncUnknownMock = vi.fn(); export const updateNpmInstalledPlugins: AsyncUnknownMock = vi.fn(); export const updateNpmInstalledHookPacks: AsyncUnknownMock = vi.fn(); export const promptYesNo: AsyncUnknownMock = vi.fn(); +export class PromptInputClosedError extends Error { + constructor() { + super("Prompt input closed before an answer was received."); + this.name = "PromptInputClosedError"; + } +} export const installPluginFromNpmSpec: AsyncUnknownMock = vi.fn(); export const installPluginFromPath: AsyncUnknownMock = vi.fn(); export const installPluginFromClawHub: AsyncUnknownMock = vi.fn(); @@ -455,6 +461,7 @@ vi.mock("../hooks/update.js", () => ({ })); vi.mock("./prompt.js", () => ({ + PromptInputClosedError, promptYesNo: ((...args: Parameters<(typeof import("./prompt.js"))["promptYesNo"]>) => invokeMock< Parameters<(typeof import("./prompt.js"))["promptYesNo"]>, diff --git a/src/cli/plugins-cli.uninstall.test.ts b/src/cli/plugins-cli.uninstall.test.ts index 2de9c85b101..20212154bc8 100644 --- a/src/cli/plugins-cli.uninstall.test.ts +++ b/src/cli/plugins-cli.uninstall.test.ts @@ -7,6 +7,7 @@ import { buildPluginSnapshotReport, loadConfig, planPluginUninstall, + PromptInputClosedError, promptYesNo, refreshPluginRegistry, replaceConfigFile, @@ -163,9 +164,6 @@ describe("plugins cli uninstall", () => { }, }, } as OpenClawConfig; - const promptClosedError = new Error("prompt closed"); - promptClosedError.name = "PromptInputClosedError"; - loadConfig.mockReturnValue(baseConfig); setInstalledPluginIndexInstallRecords(baseConfig.plugins?.installs ?? {}); buildPluginDiagnosticsReport.mockReturnValue({ @@ -187,7 +185,7 @@ describe("plugins cli uninstall", () => { }, directoryRemoval: null, }); - promptYesNo.mockRejectedValueOnce(promptClosedError); + promptYesNo.mockRejectedValueOnce(new PromptInputClosedError()); await expect(runPluginsCommand(["plugins", "uninstall", "alpha"])).rejects.toThrow( "__exit__:1",