import '@testing-library/jest-dom'
import { render } from '@testing-library/react'
import { axe, toHaveNoViolations } from 'jest-axe'
import { PktLoader } from './Loader'
expect.extend(toHaveNoViolations)
describe('PktLoader', () => {
describe('basic rendering', () => {
it('renders correctly without any props', async () => {
const { container } = render()
await window.customElements.whenDefined('pkt-loader')
const element = container.querySelector('pkt-loader')
expect(element).toBeInTheDocument()
})
it('renders with size and variant', async () => {
const { container } = render()
await window.customElements.whenDefined('pkt-loader')
const loaderBox = container.querySelector('pkt-loader')
const loaderSize = loaderBox?.querySelector('.pkt-loader--small')
expect(loaderSize).toBeInTheDocument()
expect(loaderBox).toHaveTextContent('Loading..')
})
it('renders inline', async () => {
const { container } = render()
await window.customElements.whenDefined('pkt-loader')
const elementInline = container.querySelector('.pkt-loader--inline')
expect(elementInline).toBeInTheDocument()
})
})
describe('accessibility', () => {
it('renders with no wcag errors with axe', async () => {
const { container } = render()
const results = await axe(container)
expect(results).toHaveNoViolations()
})
})
})