service.spec.ts 897 B

123456789101112131415161718192021
  1. /** Registration/capability behavior of the native backend (the seam's cordis half). */
  2. import { describe, expect, it } from 'vitest'
  3. import { Context } from '@deepseek-ai/cordis'
  4. import NativeDirectoryPicker from '../src/index.ts'
  5. describe('NativeDirectoryPicker', () => {
  6. it('registers ctx.directoryPicker with a stable native capability and leaves with its fiber', async () => {
  7. const ctx = new Context()
  8. const fiber = ctx.plugin(NativeDirectoryPicker)
  9. await fiber.await()
  10. const picker = ctx.get('directoryPicker')
  11. expect(picker).toBeInstanceOf(NativeDirectoryPicker)
  12. const capability = picker!.capability()
  13. expect(capability.kind).toBe('native')
  14. // Stability: consumers may capture the capability object across calls.
  15. expect(picker!.capability()).toBe(capability)
  16. await fiber.dispose()
  17. expect(ctx.get('directoryPicker')).toBeUndefined()
  18. })
  19. })