summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/App.test.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/App.test.tsx')
-rw-r--r--packages/cli/src/ui/App.test.tsx42
1 files changed, 41 insertions, 1 deletions
diff --git a/packages/cli/src/ui/App.test.tsx b/packages/cli/src/ui/App.test.tsx
index 903f4b66..4abf2d06 100644
--- a/packages/cli/src/ui/App.test.tsx
+++ b/packages/cli/src/ui/App.test.tsx
@@ -20,7 +20,8 @@ import {
import { LoadedSettings, SettingsFile, Settings } from '../config/settings.js';
import process from 'node:process';
import { useGeminiStream } from './hooks/useGeminiStream.js';
-import { StreamingState } from './types.js';
+import { useConsoleMessages } from './hooks/useConsoleMessages.js';
+import { StreamingState, ConsoleMessageItem } from './types.js';
import { Tips } from './components/Tips.js';
// Define a more complete mock server config based on actual Config
@@ -192,6 +193,14 @@ vi.mock('./hooks/useLogger', () => ({
})),
}));
+vi.mock('./hooks/useConsoleMessages.js', () => ({
+ useConsoleMessages: vi.fn(() => ({
+ consoleMessages: [],
+ handleNewMessage: vi.fn(),
+ clearConsoleMessages: vi.fn(),
+ })),
+}));
+
vi.mock('../config/config.js', async (importOriginal) => {
const actual = await importOriginal();
return {
@@ -692,4 +701,35 @@ describe('App UI', () => {
);
});
});
+
+ describe('errorCount', () => {
+ it('should correctly sum the counts of error messages', async () => {
+ const mockConsoleMessages: ConsoleMessageItem[] = [
+ { type: 'error', content: 'First error', count: 1 },
+ { type: 'log', content: 'some log', count: 1 },
+ { type: 'error', content: 'Second error', count: 3 },
+ { type: 'warn', content: 'a warning', count: 1 },
+ { type: 'error', content: 'Third error', count: 1 },
+ ];
+
+ vi.mocked(useConsoleMessages).mockReturnValue({
+ consoleMessages: mockConsoleMessages,
+ handleNewMessage: vi.fn(),
+ clearConsoleMessages: vi.fn(),
+ });
+
+ const { lastFrame, unmount } = render(
+ <App
+ config={mockConfig as unknown as ServerConfig}
+ settings={mockSettings}
+ version={mockVersion}
+ />,
+ );
+ currentUnmount = unmount;
+ await Promise.resolve();
+
+ // Total error count should be 1 + 3 + 1 = 5
+ expect(lastFrame()).toContain('5 errors');
+ });
+ });
});