import { render, screen } from '@testing-library/react' import userEvent from '@testing-library/user-event' import ContentDialog from './index' describe('ContentDialog', () => { it('renders children when show is true', async () => { render(
Dialog body
, ) await screen.findByText('Dialog body') expect(screen.getByText('Dialog body')).toBeInTheDocument() const backdrop = document.querySelector('.bg-app-detail-overlay-bg') expect(backdrop).toBeTruthy() }) it('does not render children when show is false', () => { render(
Hidden content
, ) expect(screen.queryByText('Hidden content')).toBeNull() expect(document.querySelector('.bg-app-detail-overlay-bg')).toBeNull() }) it('calls onClose when backdrop is clicked', async () => { const onClose = vi.fn() render(
Body
, ) const user = userEvent.setup() const backdrop = document.querySelector('.bg-app-detail-overlay-bg') as HTMLElement | null expect(backdrop).toBeTruthy() await user.click(backdrop!) expect(onClose).toHaveBeenCalledTimes(1) }) it('applies provided className to the content panel', () => { render(
Panel content
, ) const contentPanel = document.querySelector('.bg-app-detail-bg') as HTMLElement | null expect(contentPanel).toBeTruthy() expect(contentPanel?.className).toContain('my-panel-class') expect(screen.getByText('Panel content')).toBeInTheDocument() }) })