diff --git a/.github/workflows/ci-bundling-trial.yml b/.github/workflows/ci-bundling-trial.yml
index 3d247a888b..a1a1d8ea73 100644
--- a/.github/workflows/ci-bundling-trial.yml
+++ b/.github/workflows/ci-bundling-trial.yml
@@ -27,7 +27,7 @@ jobs:
mode: 'source'
- name: 'Run Suspect Tests'
- run: 'npx vitest run --pool=forks packages/cli/src/test-utils/render.test.tsx packages/cli/src/ui/App.test.tsx packages/cli/src/test-utils/AppRig.test.tsx packages/cli/src/ui/components/SettingsDialog.test.tsx packages/cli/src/ui/components/messages/DiffRenderer.test.tsx packages/cli/src/ui/components/messages/ThinkingMessage.test.tsx packages/cli/src/ui/components/messages/ToolResultDisplay.test.tsx packages/cli/src/ui/components/messages/ToolResultDisplayOverflow.test.tsx packages/cli/src/ui/components/messages/UserMessage.test.tsx packages/cli/src/ui/components/shared/SearchableList.test.tsx packages/cli/src/ui/components/shared/TextInput.test.tsx packages/cli/src/ui/components/views/ExtensionRegistryView.test.tsx'
+ run: 'npx vitest run --pool=forks packages/cli/src/ui/components/shared/TextInput.test.tsx'
shell: 'bash'
diff --git a/packages/cli/src/ui/components/shared/TextInput.test.tsx b/packages/cli/src/ui/components/shared/TextInput.test.tsx
index 6c590153ba..8e3bb2d00d 100644
--- a/packages/cli/src/ui/components/shared/TextInput.test.tsx
+++ b/packages/cli/src/ui/components/shared/TextInput.test.tsx
@@ -170,8 +170,11 @@ describe.sequential('TextInput', () => {
});
it('handles character input', async () => {
- const { waitUntilReady, unmount } = await render(
+ const { unmount } = await render(
,
+ undefined,
+ undefined,
+ true,
);
const keypressHandler = mockedUseKeypress.mock.calls[0][0];
@@ -185,17 +188,18 @@ describe.sequential('TextInput', () => {
sequence: 'a',
});
});
- await waitUntilReady();
- expect(mockBuffer.handleInput).toHaveBeenCalledWith({
- name: 'a',
- shift: false,
- alt: false,
- ctrl: false,
- cmd: false,
- sequence: 'a',
+ await waitFor(() => {
+ expect(mockBuffer.handleInput).toHaveBeenCalledWith({
+ name: 'a',
+ shift: false,
+ alt: false,
+ ctrl: false,
+ cmd: false,
+ sequence: 'a',
+ });
+ expect(mockBuffer.text).toBe('a');
});
- expect(mockBuffer.text).toBe('a');
unmount();
});
@@ -353,8 +357,11 @@ describe.sequential('TextInput', () => {
it('calls onCancel on escape', async () => {
vi.useFakeTimers();
- const { waitUntilReady, unmount } = await render(
+ const { unmount } = await render(
,
+ undefined,
+ undefined,
+ true,
);
const keypressHandler = mockedUseKeypress.mock.calls[0][0];
@@ -368,10 +375,6 @@ describe.sequential('TextInput', () => {
sequence: '',
});
});
- // Escape key has a 50ms timeout in KeypressContext, so we need to wrap waitUntilReady in act
- await act(async () => {
- await waitUntilReady();
- });
await waitFor(() => {
expect(onCancel).toHaveBeenCalled();
@@ -419,6 +422,9 @@ describe.sequential('TextInput', () => {
it('registers mouse click handler for free-form text input', async () => {
const { unmount } = await render(
,
+ undefined,
+ undefined,
+ true,
);
expect(mockedUseMouseClick).toHaveBeenCalledWith(
@@ -438,6 +444,9 @@ describe.sequential('TextInput', () => {
onSubmit={onSubmit}
onCancel={onCancel}
/>,
+ undefined,
+ undefined,
+ true,
);
expect(mockedUseMouseClick).toHaveBeenCalledWith(