import '@testing-library/jest-dom'

import { render } from '@testing-library/react'
import { axe, toHaveNoViolations } from 'jest-axe'
import { describe, expect, test } from 'vitest'

import { EXAMPLE_HEADER_FOOTER_DATA } from 'shared-utils/header-footer'
import type { IPktFooterColumn, IPktFooterLink } from 'shared-types'
import { PktFooter } from './Footer'
import { PktFooterSimple } from '../footerSimple/FooterSimple'

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 LINKS: IPktFooterLink[] = [
  { text: 'Lenke 1', href: 'https://example.test/lenke-1' },
  { text: 'Lenke 2', href: 'https://example.test/lenke-2' },
]

describe('PktFooter tilgjengelighet', () => {
  test('kun global footer har ingen a11y-avvik', async () => {
    const { container } = render(<PktFooter data={EXAMPLE_HEADER_FOOTER_DATA} />)
    expect(await axe(container)).toHaveNoViolations()
  })

  test('footer med custom kolonner har ingen a11y-avvik', async () => {
    const { container } = render(<PktFooter columns={COLUMNS} data={EXAMPLE_HEADER_FOOTER_DATA} />)
    expect(await axe(container)).toHaveNoViolations()
  })

  test('kompakt footer har ingen a11y-avvik', async () => {
    const { container } = render(<PktFooterSimple links={LINKS} data={EXAMPLE_HEADER_FOOTER_DATA} />)
    expect(await axe(container)).toHaveNoViolations()
  })
})
