mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 14:10:51 +00:00
fix(cli): match closed prompt errors by type
This commit is contained in:
@@ -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"]>,
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user