import { describe, expect, it } from 'vitest'
import { addPageModal, drainPageModals } from './page-modals'
describe('page-modals registry', () => {
it('drains registrations in insertion order and empties the registry', () => {
const render = {}
addPageModal(render, '
a
')
addPageModal(render, 'b
')
expect(drainPageModals(render)).toEqual(['a
', 'b
'])
expect(drainPageModals(render)).toEqual([])
})
it('passes promises through untouched', async () => {
const render = {}
const pending = Promise.resolve('later
')
addPageModal(render, pending)
const drained = drainPageModals(render)
expect(drained[0]).toBe(pending)
await expect(drained[0]).resolves.toBe('later
')
})
it('keeps the modals of one render away from another', () => {
const pageA = {}
const pageB = {}
addPageModal(pageA, 'a
')
addPageModal(pageB, 'b
')
expect(drainPageModals(pageB)).toEqual(['b
'])
expect(drainPageModals(pageA)).toEqual(['a
'])
})
})