import '@testing-library/jest-dom' import { axe, toHaveNoViolations } from 'jest-axe' import { afterEach, describe, expect, test, vi } from 'vitest' import './footer' import './footer-simple' import { PktFooter } from './footer' import { PktFooterSimple } from './footer-simple' import { EXAMPLE_HEADER_FOOTER_DATA } from 'shared-utils/header-footer' import type { IPktFooterColumn, IPktFooterLink } from 'shared-types' expect.extend(toHaveNoViolations) const COLUMNS: IPktFooterColumn[] = [ { title: 'Overskrift 1', text: 'Beskrivende tekst om løsningen.', links: [{ text: 'Lenke 1', href: 'https://example.test/lenke-1' }], }, { title: 'Overskrift 2', links: [{ text: 'Lenke 2', href: 'https://example.test/lenke-2' }], }, ] const SIMPLE_LINKS: IPktFooterLink[] = [ { text: 'Lenke 1', href: 'https://example.test/lenke-1' }, { text: 'Lenke 2', href: 'https://example.test/lenke-2' }, ] afterEach(() => { document.body.innerHTML = '' vi.restoreAllMocks() }) const mount = async ( tag: 'pkt-footer' | 'pkt-footer-simple', props: Record = {}, ): Promise => { const el = document.createElement(tag) as T el.data = EXAMPLE_HEADER_FOOTER_DATA Object.assign(el, props) document.body.appendChild(el) await customElements.whenDefined(tag) await el.updateComplete await new Promise((resolve) => setTimeout(resolve, 0)) await el.updateComplete return el } describe('PktFooter tilgjengelighet', () => { test('kun global footer har ingen a11y-avvik', async () => { const el = await mount('pkt-footer') expect(await axe(el)).toHaveNoViolations() }) test('footer med custom kolonner har ingen a11y-avvik', async () => { const el = await mount('pkt-footer', { columns: COLUMNS }) expect(await axe(el)).toHaveNoViolations() }) test('kompakt footer har ingen a11y-avvik', async () => { const el = await mount('pkt-footer-simple', { links: SIMPLE_LINKS }) expect(await axe(el)).toHaveNoViolations() }) })