Files
openclaw-zero-token/terminal/prompt-select-styled.test.ts
sjhu 571e14a236 feat: upgrade to upstream v2026.3.28
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
2026-03-30 17:58:12 +08:00

51 lines
1.5 KiB
TypeScript

import { beforeEach, describe, expect, it, vi } from "vitest";
const { selectMock, stylePromptMessageMock, stylePromptHintMock } = vi.hoisted(() => ({
selectMock: vi.fn(),
stylePromptMessageMock: vi.fn((value: string) => `msg:${value}`),
stylePromptHintMock: vi.fn((value: string) => `hint:${value}`),
}));
vi.mock("@clack/prompts", () => ({
select: selectMock,
}));
vi.mock("./prompt-style.js", () => ({
stylePromptMessage: stylePromptMessageMock,
stylePromptHint: stylePromptHintMock,
}));
import { selectStyled } from "./prompt-select-styled.js";
describe("selectStyled", () => {
beforeEach(() => {
selectMock.mockClear();
stylePromptMessageMock.mockClear();
stylePromptHintMock.mockClear();
});
it("styles message and option hints before delegating to clack select", () => {
const expected = Symbol("selected");
selectMock.mockReturnValue(expected);
const result = selectStyled({
message: "Pick channel",
options: [
{ value: "stable", label: "Stable", hint: "Tagged releases" },
{ value: "dev", label: "Dev" },
],
});
expect(result).toBe(expected);
expect(stylePromptMessageMock).toHaveBeenCalledWith("Pick channel");
expect(stylePromptHintMock).toHaveBeenCalledWith("Tagged releases");
expect(selectMock).toHaveBeenCalledWith({
message: "msg:Pick channel",
options: [
{ value: "stable", label: "Stable", hint: "hint:Tagged releases" },
{ value: "dev", label: "Dev" },
],
});
});
});