mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-05 09:20:22 +00:00
refactor: rename setup wizard surfaces
This commit is contained in:
51
src/wizard/setup.completion.test.ts
Normal file
51
src/wizard/setup.completion.test.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { setupWizardShellCompletion } from "./setup.completion.js";
|
||||
|
||||
function createPrompter(confirmValue = false) {
|
||||
return {
|
||||
confirm: vi.fn(async () => confirmValue),
|
||||
note: vi.fn(async () => {}),
|
||||
};
|
||||
}
|
||||
|
||||
function createDeps() {
|
||||
const deps: NonNullable<Parameters<typeof setupWizardShellCompletion>[0]["deps"]> = {
|
||||
resolveCliName: () => "openclaw",
|
||||
checkShellCompletionStatus: vi.fn(async (_binName: string) => ({
|
||||
shell: "zsh" as const,
|
||||
profileInstalled: false,
|
||||
cacheExists: false,
|
||||
cachePath: "/tmp/openclaw.zsh",
|
||||
usesSlowPattern: false,
|
||||
})),
|
||||
ensureCompletionCacheExists: vi.fn(async (_binName: string) => true),
|
||||
installCompletion: vi.fn(async () => {}),
|
||||
};
|
||||
return deps;
|
||||
}
|
||||
|
||||
describe("setupWizardShellCompletion", () => {
|
||||
it("QuickStart: installs without prompting", async () => {
|
||||
const prompter = createPrompter();
|
||||
const deps = createDeps();
|
||||
|
||||
await setupWizardShellCompletion({ flow: "quickstart", prompter, deps });
|
||||
|
||||
expect(prompter.confirm).not.toHaveBeenCalled();
|
||||
expect(deps.ensureCompletionCacheExists).toHaveBeenCalledWith("openclaw");
|
||||
expect(deps.installCompletion).toHaveBeenCalledWith("zsh", true, "openclaw");
|
||||
expect(prompter.note).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("Advanced: prompts; skip means no install", async () => {
|
||||
const prompter = createPrompter();
|
||||
const deps = createDeps();
|
||||
|
||||
await setupWizardShellCompletion({ flow: "advanced", prompter, deps });
|
||||
|
||||
expect(prompter.confirm).toHaveBeenCalledTimes(1);
|
||||
expect(deps.ensureCompletionCacheExists).not.toHaveBeenCalled();
|
||||
expect(deps.installCompletion).not.toHaveBeenCalled();
|
||||
expect(prompter.note).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user