Skip to content

Commit 1eec070

Browse files
committed
fix tui test fails by waiting escape key to work
1 parent 99fe3ce commit 1eec070

File tree

5 files changed

+37
-14
lines changed

5 files changed

+37
-14
lines changed

package-lock.json

Lines changed: 23 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/cli/tui/components/__tests__/FullScreenLogView.test.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,12 @@ describe('FullScreenLogView', () => {
5353
expect(lastFrame()).toContain('No logs yet');
5454
});
5555

56-
it('calls onExit on Escape key', () => {
56+
it('calls onExit on Escape key', async () => {
5757
const onExit = vi.fn();
5858
const { stdin } = render(<FullScreenLogView logs={makeLogs(3)} onExit={onExit} />);
5959

6060
stdin.write(ESCAPE);
61+
await new Promise(resolve => setImmediate(resolve));
6162

6263
expect(onExit).toHaveBeenCalledTimes(1);
6364
});

src/cli/tui/components/__tests__/PromptScreen.test.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ describe('PromptScreen', () => {
4949
expect(onConfirm).toHaveBeenCalledTimes(1);
5050
});
5151

52-
it('calls onExit on Escape key', () => {
52+
it('calls onExit on Escape key', async () => {
5353
const onExit = vi.fn();
5454
const { stdin } = render(
5555
<PromptScreen helpText="help" onExit={onExit}>
@@ -58,6 +58,7 @@ describe('PromptScreen', () => {
5858
);
5959

6060
stdin.write(ESCAPE);
61+
await new Promise(resolve => setImmediate(resolve));
6162

6263
expect(onExit).toHaveBeenCalledTimes(1);
6364
});
@@ -200,11 +201,12 @@ describe('ErrorPrompt', () => {
200201
expect(onBack).toHaveBeenCalledTimes(1);
201202
});
202203

203-
it('calls onExit on Escape key', () => {
204+
it('calls onExit on Escape key', async () => {
204205
const onExit = vi.fn();
205206
const { stdin } = render(<ErrorPrompt message="Failed" onExit={onExit} />);
206207

207208
stdin.write(ESCAPE);
209+
await new Promise(resolve => setImmediate(resolve));
208210

209211
expect(onExit).toHaveBeenCalledTimes(1);
210212
});
@@ -257,11 +259,12 @@ describe('ConfirmPrompt', () => {
257259
expect(onConfirm).toHaveBeenCalledTimes(1);
258260
});
259261

260-
it('calls onCancel on Escape key', () => {
262+
it('calls onCancel on Escape key', async () => {
261263
const onCancel = vi.fn();
262264
const { stdin } = render(<ConfirmPrompt message="Delete?" onConfirm={vi.fn()} onCancel={onCancel} />);
263265

264266
stdin.write(ESCAPE);
267+
await new Promise(resolve => setImmediate(resolve));
265268

266269
expect(onCancel).toHaveBeenCalledTimes(1);
267270
});

src/cli/tui/components/__tests__/Screen.test.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ describe('Screen', () => {
4949
expect(lastFrame()).toContain('Press Enter to continue');
5050
});
5151

52-
it('calls onExit on Escape key', () => {
52+
it('calls onExit on Escape key', async () => {
5353
const onExit = vi.fn();
5454
const { stdin } = render(
5555
<Screen title="Test" onExit={onExit}>
@@ -58,6 +58,7 @@ describe('Screen', () => {
5858
);
5959

6060
stdin.write(ESCAPE);
61+
await new Promise(resolve => setImmediate(resolve));
6162

6263
expect(onExit).toHaveBeenCalledTimes(1);
6364
});

src/cli/tui/hooks/__tests__/useExitHandler.test.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ function ExitHandlerHarness({ onExit, enabled }: { onExit: () => void; enabled?:
1414
}
1515

1616
describe('useExitHandler', () => {
17-
it('calls onExit when Escape is pressed', () => {
17+
it('calls onExit when Escape is pressed', async () => {
1818
const onExit = vi.fn();
1919
const { stdin } = render(<ExitHandlerHarness onExit={onExit} />);
2020

2121
stdin.write(ESCAPE);
22+
await new Promise(resolve => setImmediate(resolve));
2223

2324
expect(onExit).toHaveBeenCalledTimes(1);
2425
});
@@ -53,11 +54,12 @@ describe('useExitHandler', () => {
5354
expect(onExit).not.toHaveBeenCalled();
5455
});
5556

56-
it('enabled defaults to true', () => {
57+
it('enabled defaults to true', async () => {
5758
const onExit = vi.fn();
5859
const { stdin } = render(<ExitHandlerHarness onExit={onExit} />);
5960

6061
stdin.write(ESCAPE);
62+
await new Promise(resolve => setImmediate(resolve));
6163

6264
expect(onExit).toHaveBeenCalledTimes(1);
6365
});

0 commit comments

Comments
 (0)