From 123ad20e9bfc5cf47eca4fe0e073ecef67a639f9 Mon Sep 17 00:00:00 2001 From: Asad Memon Date: Sun, 15 Jun 2025 11:19:05 -0700 Subject: feat: Show model thoughts while loading (#992) --- .../src/ui/components/LoadingIndicator.test.tsx | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'packages/cli/src/ui/components/LoadingIndicator.test.tsx') diff --git a/packages/cli/src/ui/components/LoadingIndicator.test.tsx b/packages/cli/src/ui/components/LoadingIndicator.test.tsx index 3d31818b..ba161062 100644 --- a/packages/cli/src/ui/components/LoadingIndicator.test.tsx +++ b/packages/cli/src/ui/components/LoadingIndicator.test.tsx @@ -159,4 +159,56 @@ describe('', () => { ); expect(lastFrame()).toBe(''); }); + + it('should display fallback phrase if thought is empty', () => { + const props = { + thought: null, + currentLoadingPhrase: 'Loading...', + elapsedTime: 5, + }; + const { lastFrame } = renderWithContext( + , + StreamingState.Responding, + ); + const output = lastFrame(); + expect(output).toContain('Loading...'); + }); + + it('should display the subject of a thought', () => { + const props = { + thought: { + subject: 'Thinking about something...', + description: 'and other stuff.', + }, + elapsedTime: 5, + }; + const { lastFrame } = renderWithContext( + , + StreamingState.Responding, + ); + const output = lastFrame(); + expect(output).toBeDefined(); + if (output) { + expect(output).toContain('Thinking about something...'); + expect(output).not.toContain('and other stuff.'); + } + }); + + it('should prioritize thought.subject over currentLoadingPhrase', () => { + const props = { + thought: { + subject: 'This should be displayed', + description: 'A description', + }, + currentLoadingPhrase: 'This should not be displayed', + elapsedTime: 5, + }; + const { lastFrame } = renderWithContext( + , + StreamingState.Responding, + ); + const output = lastFrame(); + expect(output).toContain('This should be displayed'); + expect(output).not.toContain('This should not be displayed'); + }); }); -- cgit v1.2.3