mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-18 18:27:27 +00:00
51 lines
1.5 KiB
TypeScript
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" },
|
|
],
|
|
});
|
|
});
|
|
});
|