core-request-scope.spec.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { describe, expect, it } from 'vitest'
  2. import {
  3. createFileViewerRequestController,
  4. createFileViewerRequestScope
  5. } from '../packages/core/src'
  6. describe('@file-viewer/core request scope', () => {
  7. it('exposes request version ownership without framework hooks', () => {
  8. const scope = createFileViewerRequestScope()
  9. expect(scope.getCurrentVersion()).toBe(0)
  10. expect(scope.isCurrentRequest(0)).toBe(true)
  11. const firstVersion = scope.requestController.createVersion()
  12. expect(firstVersion).toBe(1)
  13. expect(scope.getCurrentVersion()).toBe(1)
  14. expect(scope.isCurrentRequest(firstVersion)).toBe(true)
  15. expect(scope.isCurrentRequest(0)).toBe(false)
  16. const secondVersion = scope.requestController.createVersion()
  17. expect(secondVersion).toBe(2)
  18. expect(scope.getCurrentVersion()).toBe(2)
  19. expect(scope.isCurrentRequest(firstVersion)).toBe(false)
  20. expect(scope.isCurrentRequest(secondVersion)).toBe(true)
  21. })
  22. it('can wrap an existing request controller for shared owners', () => {
  23. const requestController = createFileViewerRequestController()
  24. const scope = createFileViewerRequestScope(requestController)
  25. const version = requestController.createVersion()
  26. expect(scope.requestController).toBe(requestController)
  27. expect(scope.getCurrentVersion()).toBe(version)
  28. expect(scope.isCurrentRequest(version)).toBe(true)
  29. })
  30. })