mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-20 08:47:44 +00:00
Handle unhandled rejections more gracefully. (#4417)
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
This commit is contained in:
@@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user