/**
 * UX-MOBILE-2: Genotyp-Tabellen-Overflow — die Tabelle scrollt horizontal,
 * die Seite selbst bleibt NICHT breiter als der Viewport (kein horizontaler
 * Page-Overflow auf 390px).
 */
import { de, expect, skipUnlessMock, test } from './fixtures'

const tl = de.pages.litters

test('Phone: Genotyp-Detail-Tabelle scrollt im eigenen Wrapper, kein Page-Overflow', async ({
  page,
}, testInfo) => {
  skipUnlessMock()
  if (testInfo.project.name !== 'phone') return

  // Wurf w-kruemel hat beide Eltern mit Genotypen → BreedingResultView rendert.
  await page.goto('/wuerfe/w-kruemel')
  await expect(page.getByRole('heading', { name: 'Wurf K' })).toBeVisible()
  await expect(page.getByText(tl.detail.expectedColors).first()).toBeVisible()

  // Genotyp-Detail-Tabelle ausklappen.
  await page.getByRole('button', { name: de.pages.genetik.showGenotypes }).click()

  // Scroll-Wrapper und Tabelle müssen vorhanden und sichtbar sein.
  const wrapper = page.locator('.genotype-table-scroll').first()
  await expect(wrapper).toBeVisible()
  await expect(wrapper.locator('.genotype-table')).toBeVisible()

  // Wrapper ist selbst scrollbar (Tabelle breiter als der sichtbare Bereich).
  const wrapperScrollable = await wrapper.evaluate(
    (el) => el.scrollWidth > el.clientWidth,
  )
  expect(wrapperScrollable).toBe(true)

  // Die Seite selbst darf NICHT breiter als der Viewport sein.
  const pageOverflow = await page.evaluate(
    () => document.documentElement.scrollWidth > document.documentElement.clientWidth,
  )
  expect(pageOverflow).toBe(false)
})

test('Desktop: Genotyp-Detail-Tabelle zeigt Wrapper auch auf breitem Viewport', async ({
  page,
}, testInfo) => {
  skipUnlessMock()
  if (testInfo.project.name !== 'desktop') return

  await page.goto('/wuerfe/w-kruemel')
  await expect(page.getByText(tl.detail.expectedColors).first()).toBeVisible()
  await page.getByRole('button', { name: de.pages.genetik.showGenotypes }).click()

  await expect(page.locator('.genotype-table-scroll').first()).toBeVisible()
  await expect(page.locator('.genotype-table').first()).toBeVisible()
})
