test: fix failing tests for mocks and API return types (#366)

* fix(chat): isolate concurrent session events by refactoring WebSocket event handling

Refactored the WebSocket event handling mechanism to use global listeners with session-specific event routing instead of per-session listeners. This prevents event cross-talk when multiple chat sessions run concurrently.

Key changes:
- Client: Added sessionEventHandlers Map to route events to appropriate sessions
- Client: Registered global listeners once per socket connection
- Server: Extracted message processing logic into handleMessage method
- Server: Improved Hermes session ID tracking with dedicated Map
- Server: Added replaceByHermesSessionId for targeted message replacement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test: fix failing tests for mocks and API return types

- Fixed sessions-routes.test.ts: added missing setWorkspace and listWorkspaceFolders mocks
- Fixed usage-store.test.ts: removed test for non-existent initUsageStore function
- Fixed profiles-store.test.ts: corrected createProfile API return type to { success: true }
- Fixed syntax error in usageStatsMock (ctx.body: → ctx.body =)

All tests now pass (314 passed | 2 skipped).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-05-01 08:24:57 +08:00
committed by GitHub
parent f15deef3fc
commit a948eee4b9
3 changed files with 7 additions and 10 deletions
+3 -3
View File
@@ -52,16 +52,16 @@ describe('Profiles Store', () => {
})
it('createProfile calls API and refreshes list', async () => {
mockProfilesApi.createProfile.mockResolvedValue(true)
mockProfilesApi.createProfile.mockResolvedValue({ success: true })
mockProfilesApi.fetchProfiles.mockResolvedValue([
{ name: 'default', active: true, model: 'gpt-4', gateway: 'running', alias: '' },
{ name: 'new-profile', active: false, model: 'gpt-4', gateway: 'stopped', alias: '' },
])
const store = useProfilesStore()
const ok = await store.createProfile('new-profile', false)
const result = await store.createProfile('new-profile', false)
expect(ok).toBe(true)
expect(result.success).toBe(true)
expect(mockProfilesApi.createProfile).toHaveBeenCalledWith('new-profile', false)
expect(store.profiles).toHaveLength(2)
})