// Test med axe https://www.npmjs.com/package/jest-axe import '@testing-library/jest-dom' import { render } from '@testing-library/react' import { axe, toHaveNoViolations } from 'jest-axe' import { PktLinkCard } from './LinkCard' expect.extend(toHaveNoViolations) describe('PktLinkCard', () => { // BASIC RENDERING TESTS describe('basic rendering', () => { it('renders correctly with only default props', async () => { const { getByText } = render(LinkCard Content) expect(getByText('LinkCard Content')).toBeInTheDocument() }) it('renders with title', async () => { render(Link content) const iconElement = document.querySelector('.pkt-linkcard__title') expect(iconElement).toBeInTheDocument() }) it('renders without title', async () => { render(Link content) const iconElement = document.querySelector('.pkt-linkcard__title') expect(iconElement).not.toBeInTheDocument() }) it('renders with correct href', async () => { const href = 'https://www.example.com' const { container } = render( Link content , ) const linkElement = container.querySelector('.pkt-linkcard') expect(linkElement).toHaveAttribute('href', href) }) }) // SKIN TESTS describe('skins', () => { it('renders with normal skin', async () => { const { container } = render(
, ) const linkElement = container.querySelector('.pkt-linkcard') expect(linkElement).toHaveClass('pkt-linkcard pkt-linkcard--normal') }) it('renders with blue skin', async () => { const { container } = render(
, ) const linkElement = container.querySelector('.pkt-linkcard') expect(linkElement).toHaveClass('pkt-linkcard pkt-linkcard--blue') }) it('renders with beige skin', async () => { const { container } = render(
, ) const linkElement = container.querySelector('.pkt-linkcard') expect(linkElement).toHaveClass('pkt-linkcard pkt-linkcard--beige') }) it('renders with green skin', async () => { const { container } = render(
, ) const linkElement = container.querySelector('.pkt-linkcard') expect(linkElement).toHaveClass('pkt-linkcard pkt-linkcard--green') }) it('renders with beige-outline skin', async () => { const { container } = render(
, ) const linkElement = container.querySelector('.pkt-linkcard') expect(linkElement).toHaveClass('pkt-linkcard pkt-linkcard--beige-outline') }) it('renders with gray-outline skin', async () => { const { container } = render(
, ) const linkElement = container.querySelector('.pkt-linkcard') expect(linkElement).toHaveClass('pkt-linkcard pkt-linkcard--gray-outline') }) }) // ACCESSIBILITY TESTS describe('accessibility', () => { it('renders with no wcag errors with axe', async () => { const { container } = render() const results = await axe(container) expect(results).toHaveNoViolations() }) }) })