import { render, screen } from '@testing-library/react'
import { SafeHtml } from '../safe-html'
describe('SafeHtml', () => {
it('renders safe HTML content', () => {
render()
expect(screen.getByText(/Hello/)).toBeInTheDocument()
expect(screen.getByText(/world/)).toBeInTheDocument()
})
it('strips script tags (XSS protection)', () => {
const { container } = render(
)
expect(container.querySelector('script')).toBeNull()
expect(container.textContent).toContain('Safe')
})
it('strips event handlers (XSS protection)', () => {
const { container } = render(
)
const img = container.querySelector('img')
expect(img?.getAttribute('onerror')).toBeNull()
})
it('preserves className prop', () => {
const { container } = render(
)
expect(container.firstChild).toHaveAttribute('class', 'prose')
})
it('renders with custom tag via as prop', () => {
const { container } = render(
)
expect(container.querySelector('section')).not.toBeNull()
})
it('handles empty string', () => {
const { container } = render()
expect(container.firstChild).toBeInTheDocument()
})
})