import '@testing-library/jest-dom' import { fireEvent, render, screen } from '@testing-library/react' import { axe, toHaveNoViolations } from 'jest-axe' import { PktTextinput } from './Textinput' expect.extend(toHaveNoViolations) const inputId = 'inputId' const label = 'Input Label' describe('PktTextinput', () => { test('renders input field with correct props', async () => { const { getByLabelText } = render() const inputElement = getByLabelText('Input Label') expect(inputElement).toBeInTheDocument() expect(inputElement.tagName).toBe('INPUT') expect(inputElement.id).toBe('inputId') }) test('renders error message when hasError prop is true', async () => { render() const errorMessageId = screen.getByRole('textbox').getAttribute('aria-errormessage') const alertContainer = screen.getByRole('alert') expect(alertContainer).toHaveAttribute('id', errorMessageId) expect(alertContainer).toHaveTextContent('Input error') }) describe('PktTextinput', () => { test('toggles helptext class', async () => { const { getByText, container } = render( , ) const expandButton = getByText('Les mer').closest('button') as HTMLButtonElement const helptextElement = container.querySelector('.pkt-inputwrapper__helptext-expandable-closed') await fireEvent.click(expandButton) expect(helptextElement).toHaveClass('pkt-inputwrapper__helptext-expandable-open') await fireEvent.click(expandButton) expect(helptextElement).toHaveClass('pkt-inputwrapper__helptext-expandable-closed') }) }) describe('accessibility', () => { it('renders with no wcag errors with axe', async () => { const { container } = render() const results = await axe(container) expect(results).toHaveNoViolations() }) }) })