diff options
Diffstat (limited to 'packages/cli/src/ui/hooks/useGeminiStream.test.tsx')
| -rw-r--r-- | packages/cli/src/ui/hooks/useGeminiStream.test.tsx | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/useGeminiStream.test.tsx b/packages/cli/src/ui/hooks/useGeminiStream.test.tsx index dd2428bb..751b869e 100644 --- a/packages/cli/src/ui/hooks/useGeminiStream.test.tsx +++ b/packages/cli/src/ui/hooks/useGeminiStream.test.tsx @@ -406,6 +406,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ); }, { @@ -560,6 +562,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -633,6 +637,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -737,6 +743,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -843,6 +851,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -943,6 +953,44 @@ describe('useGeminiStream', () => { expect(result.current.streamingState).toBe(StreamingState.Idle); }); + it('should call onCancelSubmit handler when escape is pressed', async () => { + const cancelSubmitSpy = vi.fn(); + const mockStream = (async function* () { + yield { type: 'content', value: 'Part 1' }; + // Keep the stream open + await new Promise(() => {}); + })(); + mockSendMessageStream.mockReturnValue(mockStream); + + const { result } = renderHook(() => + useGeminiStream( + mockConfig.getGeminiClient(), + [], + mockAddItem, + mockConfig, + mockOnDebugMessage, + mockHandleSlashCommand, + false, + () => 'vscode' as EditorType, + () => {}, + () => Promise.resolve(), + false, + () => {}, + () => {}, + cancelSubmitSpy, + ), + ); + + // Start a query + await act(async () => { + result.current.submitQuery('test query'); + }); + + simulateEscapeKeyPress(); + + expect(cancelSubmitSpy).toHaveBeenCalled(); + }); + it('should not do anything if escape is pressed when not responding', () => { const { result } = renderTestHook(); @@ -1202,6 +1250,8 @@ describe('useGeminiStream', () => { mockPerformMemoryRefresh, false, () => {}, + () => {}, + () => {}, ), ); @@ -1253,6 +1303,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -1301,6 +1353,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -1347,6 +1401,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -1394,6 +1450,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -1481,6 +1539,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -1535,6 +1595,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -1611,6 +1673,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); @@ -1663,6 +1727,8 @@ describe('useGeminiStream', () => { () => Promise.resolve(), false, () => {}, + () => {}, + () => {}, ), ); |
