Files
aiturk-hermes-ide/apps/desktop/src/app/routes.test.ts
T

31 lines
1.2 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { NEW_CHAT_ROUTE, primaryRouteSelectedSessionId, sessionRoute, SETTINGS_ROUTE } from './routes'
const SESS_A = 'sess-a'
const SESS_B = 'sess-b'
describe('primaryRouteSelectedSessionId', () => {
it('prefers the routed session id over a stale/different store selection (#59305)', () => {
// The route already committed to B while the store selection hasn't
// caught up yet (still reads A) — the route wins.
expect(primaryRouteSelectedSessionId(sessionRoute(SESS_B), SESS_A)).toBe(SESS_B)
})
it('returns null on the new-chat route even with a leftover selection from the previous chat', () => {
expect(primaryRouteSelectedSessionId(NEW_CHAT_ROUTE, SESS_A)).toBeNull()
})
it('falls back to the store selection on a non-chat route (settings, overlays)', () => {
expect(primaryRouteSelectedSessionId(SETTINGS_ROUTE, SESS_A)).toBe(SESS_A)
})
it('falls back to the store selection when the route matches the same session', () => {
expect(primaryRouteSelectedSessionId(sessionRoute(SESS_A), SESS_A)).toBe(SESS_A)
})
it('returns null on a non-chat route with no store selection', () => {
expect(primaryRouteSelectedSessionId(SETTINGS_ROUTE, null)).toBeNull()
})
})