store.client.spec.ts 995 B

123456789101112131415161718192021
  1. import { describe, expect, it } from 'vitest'
  2. import type { TabId } from '@deepseek-ai/dsh-client-ui-dockkit'
  3. import { BrowserNavigation } from '../src/client/browser/BrowserNavigation.ts'
  4. import { createBrowserStore } from '../src/client/browser/store.ts'
  5. const TAB = 'browser-tab' as TabId
  6. describe('Browser persistence store', () => {
  7. it('replaces snapshots and forgets only the closed tab', () => {
  8. const store = createBrowserStore().create()
  9. const first = new BrowserNavigation()
  10. first.navigate({ kind: 'https', url: 'https://example.test/', title: 'example.test' })
  11. store.actions.replace(TAB, first.snapshot)
  12. const other = 'other-tab' as TabId
  13. store.actions.replace(other, BrowserNavigation.empty())
  14. expect(BrowserNavigation.current(store.getSnapshot().byTab[TAB])?.url).toBe('https://example.test/')
  15. store.actions.forget(TAB)
  16. expect(store.getSnapshot().byTab[TAB]).toBeUndefined()
  17. expect(store.getSnapshot().byTab[other]).toBeDefined()
  18. })
  19. })