From b5a2faf711cd3807d980dbf7d5e0132dc41953aa Mon Sep 17 00:00:00 2001 From: mkorwel Date: Fri, 17 Apr 2026 21:17:01 +0000 Subject: [PATCH] test: fix useReverseSearchCompletion tests --- packages/cli/src/test-utils/render.tsx | 1 + .../hooks/useReverseSearchCompletion.test.tsx | 119 +++++++++++------- 2 files changed, 73 insertions(+), 47 deletions(-) diff --git a/packages/cli/src/test-utils/render.tsx b/packages/cli/src/test-utils/render.tsx index 1fec1ee96a..977074b0d4 100644 --- a/packages/cli/src/test-utils/render.tsx +++ b/packages/cli/src/test-utils/render.tsx @@ -941,6 +941,7 @@ export async function renderHookWithProviders( width?: number; mouseEventsEnabled?: boolean; config?: Config; + allowEmptyFrame?: boolean; } = {}, ): Promise<{ result: { current: Result }; diff --git a/packages/cli/src/ui/hooks/useReverseSearchCompletion.test.tsx b/packages/cli/src/ui/hooks/useReverseSearchCompletion.test.tsx index 5a6be4267a..90d8af8cc6 100644 --- a/packages/cli/src/ui/hooks/useReverseSearchCompletion.test.tsx +++ b/packages/cli/src/ui/hooks/useReverseSearchCompletion.test.tsx @@ -33,12 +33,14 @@ describe('useReverseSearchCompletion', () => { it('should initialize with default state', async () => { const mockShellHistory = ['echo hello']; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion( - useTextBufferForTest(''), - mockShellHistory, - false, - ), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest(''), + mockShellHistory, + false, + ), + { allowEmptyFrame: true }, ); expect(result.current.suggestions).toEqual([]); @@ -59,7 +61,10 @@ describe('useReverseSearchCompletion', () => { active, ); }, - { initialProps: { text: 'echo', active: true } }, + { + initialProps: { text: 'echo', active: true }, + allowEmptyFrame: true, + }, ); // Simulate reverseSearchActive becoming false @@ -75,12 +80,14 @@ describe('useReverseSearchCompletion', () => { it('should handle navigateUp with no suggestions', async () => { const mockShellHistory = ['echo hello']; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion( - useTextBufferForTest('grep'), - mockShellHistory, - true, - ), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest('grep'), + mockShellHistory, + true, + ), + { allowEmptyFrame: true }, ); act(() => { @@ -92,12 +99,14 @@ describe('useReverseSearchCompletion', () => { it('should handle navigateDown with no suggestions', async () => { const mockShellHistory = ['echo hello']; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion( - useTextBufferForTest('grep'), - mockShellHistory, - true, - ), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest('grep'), + mockShellHistory, + true, + ), + { allowEmptyFrame: true }, ); act(() => { @@ -117,12 +126,14 @@ describe('useReverseSearchCompletion', () => { 'echo Hi', ]; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion( - useTextBufferForTest('echo'), - mockShellHistory, - true, - ), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest('echo'), + mockShellHistory, + true, + ), + { allowEmptyFrame: true }, ); expect(result.current.suggestions.length).toBe(2); @@ -144,12 +155,14 @@ describe('useReverseSearchCompletion', () => { 'echo "Hello, World!"', 'echo Hi', ]; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion( - useTextBufferForTest('ls'), - mockShellHistory, - true, - ), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest('ls'), + mockShellHistory, + true, + ), + { allowEmptyFrame: true }, ); expect(result.current.suggestions.length).toBe(2); @@ -172,12 +185,14 @@ describe('useReverseSearchCompletion', () => { 'echo "Hi all"', ]; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion( - useTextBufferForTest('l'), - mockShellHistory, - true, - ), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest('l'), + mockShellHistory, + true, + ), + { allowEmptyFrame: true }, ); expect(result.current.suggestions.length).toBe(5); @@ -215,12 +230,14 @@ describe('useReverseSearchCompletion', () => { (_, i) => `echo ${i}`, ); - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion( - useTextBufferForTest('echo'), - largeMockCommands, - true, - ), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest('echo'), + largeMockCommands, + true, + ), + { allowEmptyFrame: true }, ); expect(result.current.suggestions.length).toBe(15); @@ -241,8 +258,14 @@ describe('useReverseSearchCompletion', () => { describe('Filtering', () => { it('filters history by buffer.text and sets showSuggestions', async () => { const history = ['foo', 'barfoo', 'baz']; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion(useTextBufferForTest('foo'), history, true), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion( + useTextBufferForTest('foo'), + history, + true, + ), + { allowEmptyFrame: true }, ); // should only return the two entries containing "foo" @@ -255,8 +278,10 @@ describe('useReverseSearchCompletion', () => { it('hides suggestions when there are no matches', async () => { const history = ['alpha', 'beta']; - const { result } = await renderHookWithProviders(() => - useReverseSearchCompletion(useTextBufferForTest('γ'), history, true), + const { result } = await renderHookWithProviders( + () => + useReverseSearchCompletion(useTextBufferForTest('γ'), history, true), + { allowEmptyFrame: true }, ); expect(result.current.suggestions).toEqual([]);