Skip to content

Commit 05af920

Browse files
committed
test(input-prompt): 更新测试中的 planMode 参数并添加 UI 组件 mock
- 在 InputPrompt 测试中所有调用 mockOnSendPrompt 的断言加入了 { planMode: false } 参数 - 为 Tooltip 相关组件添加了 mock 实现,支持测试中使用 - 为 Switch 组件添加了 mock 实现,模拟复选框行为 - 增加了 Siren 图标组件的 mock,完善图标模拟覆盖 - 保持所有新增代码符合测试结构及命名规范
1 parent 1df832e commit 05af920

1 file changed

Lines changed: 24 additions & 5 deletions

File tree

packages/vscode-ide-companion/src/webview/components/InputPrompt.test.tsx

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,24 @@ vi.mock("@/webview/components/ui/popover", () => ({
8989
PopoverContent: vi.fn(({ children }) => <div data-testid="popover-content">{children}</div>),
9090
}));
9191

92+
vi.mock("@/webview/components/ui/tooltip", () => ({
93+
Tooltip: vi.fn(({ children }) => <div data-testid="tooltip">{children}</div>),
94+
TooltipTrigger: vi.fn(({ children }) => <div data-testid="tooltip-trigger">{children}</div>),
95+
TooltipContent: vi.fn(({ children }) => <div data-testid="tooltip-content">{children}</div>),
96+
}));
97+
98+
vi.mock("@/webview/components/ui/switch", () => ({
99+
Switch: vi.fn(({ checked, onCheckedChange, ...props }) => (
100+
<input
101+
type="checkbox"
102+
data-testid="switch"
103+
checked={checked}
104+
onChange={(e) => onCheckedChange?.(e.target.checked)}
105+
{...props}
106+
/>
107+
)),
108+
}));
109+
92110
vi.mock("@/webview/components/PromptAttachments", () => ({
93111
PromptAttachments: vi.fn(({ attachments }) => (
94112
<div data-testid="prompt-attachments">{attachments.length} attachments</div>
@@ -114,6 +132,7 @@ vi.mock("lucide-react", () => ({
114132
Send: vi.fn(() => <span data-testid="send-icon" />),
115133
Reply: vi.fn(() => <span data-testid="reply-icon" />),
116134
FileCodeIcon: vi.fn(() => <span data-testid="file-icon" />),
135+
Siren: vi.fn(() => <span data-testid="siren-icon" />),
117136
GraduationCap: vi.fn(() => <span data-testid="graduation-icon" />),
118137
X: vi.fn(() => <span data-testid="x-icon" />),
119138
AlertCircle: vi.fn(() => <span data-testid="alert-icon" />),
@@ -170,7 +189,7 @@ describe("InputPrompt", () => {
170189
const textarea = screen.getByRole("textbox");
171190
fireEvent.change(textarea, { target: { value: "Hello" } });
172191
fireEvent.keyDown(textarea, { key: "Enter" });
173-
expect(mockOnSendPrompt).toHaveBeenCalledWith("Hello", [], [], undefined);
192+
expect(mockOnSendPrompt).toHaveBeenCalledWith("Hello", [], [], { planMode: false });
174193
});
175194

176195
it("does not send empty message", () => {
@@ -185,7 +204,7 @@ describe("InputPrompt", () => {
185204
const textarea = screen.getByRole("textbox");
186205
fireEvent.change(textarea, { target: { value: " Hello " } });
187206
fireEvent.keyDown(textarea, { key: "Enter" });
188-
expect(mockOnSendPrompt).toHaveBeenCalledWith("Hello", [], [], undefined);
207+
expect(mockOnSendPrompt).toHaveBeenCalledWith("Hello", [], [], { planMode: false });
189208
});
190209

191210
it("does not send while loading", () => {
@@ -222,11 +241,11 @@ describe("InputPrompt", () => {
222241

223242
fireEvent.change(textarea, { target: { value: "First message" } });
224243
fireEvent.keyDown(textarea, { key: "Enter" });
225-
expect(mockOnSendPrompt).toHaveBeenCalledWith("First message", [], [], undefined);
244+
expect(mockOnSendPrompt).toHaveBeenCalledWith("First message", [], [], { planMode: false });
226245

227246
fireEvent.change(textarea, { target: { value: "Second message" } });
228247
fireEvent.keyDown(textarea, { key: "Enter" });
229-
expect(mockOnSendPrompt).toHaveBeenCalledWith("Second message", [], [], undefined);
248+
expect(mockOnSendPrompt).toHaveBeenCalledWith("Second message", [], [], { planMode: false });
230249
});
231250

232251
it("navigates to previous history with ArrowUp when at start", async () => {
@@ -566,7 +585,7 @@ describe("InputPrompt", () => {
566585
fireEvent.click(sendButton);
567586
}
568587

569-
expect(mockOnSendPrompt).toHaveBeenCalledWith("Editing this message", [], [], undefined);
588+
expect(mockOnSendPrompt).toHaveBeenCalledWith("Editing this message", [], [], { planMode: false });
570589
expect(mockOnClearEditingMessage).toHaveBeenCalled();
571590
});
572591

0 commit comments

Comments
 (0)