import { describe, expect, it } from 'vitest'
import { addPageScript, drainPageScripts } from './page-scripts'
describe('page-scripts registry', () => {
it('drains registrations in insertion order and empties the registry', () => {
const render = {}
addPageScript(render, '')
addPageScript(render, '')
expect(drainPageScripts(render)).toEqual(['', ''])
expect(drainPageScripts(render)).toEqual([])
})
it('keeps byte-identical registrations (no dedup)', () => {
const render = {}
addPageScript(render, '')
addPageScript(render, '')
expect(drainPageScripts(render)).toHaveLength(2)
})
it('passes promises through untouched', async () => {
const render = {}
const pending = Promise.resolve('')
addPageScript(render, pending)
const drained = drainPageScripts(render)
expect(drained[0]).toBe(pending)
await expect(drained[0]).resolves.toBe('')
})
it('keeps the registrations of one render away from another', () => {
const page = {}
const endpoint = {}
addPageScript(endpoint, '')
addPageScript(page, '')
expect(drainPageScripts(page)).toEqual([''])
})
})