import { render } from '@testing-library/react'
import { axe, toHaveNoViolations } from 'jest-axe'
import { ReactNode } from 'react'
import { BrowserRouter as Router } from 'react-router-dom'
import { PktBreadcrumbs } from './Breadcrumbs'
expect.extend(toHaveNoViolations)
// Create a Router with future flags to suppress warnings
const TestRouter = ({ children }: { children: ReactNode }) => (
{children}
)
describe('PktBreadcrumbs Component', () => {
const breadcrumbs = [
{ text: 'Home', href: '/' },
{ text: 'Products', href: '/products' },
{ text: 'Item', href: '/products/item' },
]
it('renders breadcrumbs correctly with react-router navigation', async () => {
const { getAllByText } = render(
,
)
await window.customElements.whenDefined('pkt-icon')
expect(getAllByText('Home')).toBeTruthy()
expect(getAllByText('Products')).toBeTruthy()
expect(getAllByText('Item')).toBeTruthy()
})
it('renders breadcrumbs correctly with anchor navigation', async () => {
const { getAllByText } = render()
await window.customElements.whenDefined('pkt-icon')
expect(getAllByText('Home')).toBeTruthy()
expect(getAllByText('Products')).toBeTruthy()
expect(getAllByText('Item')).toBeTruthy()
})
it('renders back link correctly on mobile with router navigation', async () => {
const { getAllByText } = render(
,
)
await window.customElements.whenDefined('pkt-icon')
expect(getAllByText('Home')).toBeTruthy()
expect(getAllByText('Products')).toBeTruthy()
expect(getAllByText('Item')).toBeTruthy()
})
it('renders back link correctly on mobile with anchor navigation', async () => {
const { getAllByText } = render()
await window.customElements.whenDefined('pkt-icon')
expect(getAllByText('Home')).toBeTruthy()
expect(getAllByText('Products')).toBeTruthy()
expect(getAllByText('Item')).toBeTruthy()
})
it('renders with no wcag errors with axe', async () => {
const { container } = render()
await window.customElements.whenDefined('pkt-icon')
const results = await axe(container)
expect(results).toHaveNoViolations()
})
})