import { fireEvent, render, screen } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import { Modal } from './Modal'
describe('Modal', () => {
it('portals the dialog to body so the scrim covers the full app shell', () => {
const onClose = vi.fn()
const { container } = render(
Provider form
,
)
const dialog = screen.getByRole('dialog', { name: 'Provider' })
expect(container.contains(dialog)).toBe(false)
expect(document.body.contains(dialog)).toBe(true)
})
it('closes when the backdrop is clicked', () => {
const onClose = vi.fn()
render(
Provider form
,
)
const backdrop = screen.getByRole('dialog').previousElementSibling
expect(backdrop).not.toBeNull()
fireEvent.click(backdrop!)
expect(onClose).toHaveBeenCalledTimes(1)
})
})