host.client.spec.ts 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import { Context } from '@deepseek-ai/cordis'
  2. import { describe, expect, it } from 'vitest'
  3. import { SettingsProvider, type SettingsNamespace } from '@deepseek-ai/dsh-settings'
  4. import { apply } from '../src/index.ts'
  5. /** Mirrors the module-local namespace id in src/index.ts. */
  6. const ONBOARDING_SETTINGS_NAMESPACE = 'ui-onboarding'
  7. class MemorySettings extends SettingsProvider {
  8. readonly writable = true
  9. protected load(): Promise<Record<string, unknown>> { return Promise.resolve({}) }
  10. protected persist(_ns: SettingsNamespace, _section: Record<string, unknown>): Promise<void> {
  11. return Promise.resolve()
  12. }
  13. }
  14. describe('ui-settings-general host', () => {
  15. it('registers and disposes the durable onboarding namespace with its fiber', async () => {
  16. const ctx = new Context()
  17. await ctx.plugin(MemorySettings).await()
  18. const fiber = ctx.plugin({ apply })
  19. await fiber.await()
  20. expect(ctx.settings.describe().map(row => row.ns)).toContain(
  21. ONBOARDING_SETTINGS_NAMESPACE,
  22. )
  23. await fiber.dispose()
  24. expect(ctx.settings.describe().map(row => row.ns)).not.toContain(
  25. ONBOARDING_SETTINGS_NAMESPACE,
  26. )
  27. })
  28. })