invariant.spec.ts 874 B

1234567891011121314151617181920212223
  1. import { describe, expect, it } from 'vitest'
  2. import InvariantRegistry from '@deepseek-ai/dsh-invariants'
  3. import * as MessageFeedbackInvariant from '../src/invariant.ts'
  4. import { setupHarness } from './helpers.ts'
  5. describe('message-feedback invariant companion', () => {
  6. it('removes its registry contribution when its fiber is disposed (HMR safety)', async () => {
  7. const harness = await setupHarness()
  8. try {
  9. await harness.ctx.plugin(InvariantRegistry)
  10. const fiber = await harness.ctx.plugin(MessageFeedbackInvariant)
  11. expect(() => {
  12. harness.ctx.invariants.register('@deepseek-ai/dsh-message-feedback', () => {})
  13. }).toThrow(/already registered/u)
  14. await fiber.dispose()
  15. await expect(harness.ctx.plugin(MessageFeedbackInvariant).await()).resolves.toBeDefined()
  16. } finally {
  17. await harness.dispose()
  18. }
  19. })
  20. })