/** QA-1: Statistik & Berichte (FEAT-7) — Auswertungen rendern. */ import { de, expect, gotoSection, skipUnlessMock, test } from './fixtures' const t = de.pages.statistik test('Statistikseite lädt (leer oder mit Daten, aber deutsch)', async ({ page }) => { await gotoSection(page, de.nav.statistics) await expect(page.getByRole('heading', { name: t.title })).toBeVisible() // Live ohne Daten: leerer Zustand; sonst die Auswertungs-Karten await expect( page.getByText(t.empty).or(page.getByRole('heading', { name: t.littersPerYear })), ).toBeVisible() }) test('alle fünf Auswertungen rendern mit den Seed-Daten', async ({ page }) => { skipUnlessMock() await gotoSection(page, de.nav.statistics) await expect(page.getByRole('heading', { name: t.littersPerYear })).toBeVisible() await expect(page.getByRole('heading', { name: t.avgLitterSize })).toBeVisible() await expect(page.getByRole('heading', { name: t.farbschlag })).toBeVisible() await expect(page.getByRole('heading', { name: t.population })).toBeVisible() await expect(page.getByRole('heading', { name: t.losses })).toBeVisible() // Diagramme: Balken (Würfe/Jahr), horizontale Farbschlag-Balken, Bestandskurve await expect(page.locator('svg').first()).toBeVisible() await expect(page.locator('.hbar').first()).toBeVisible() await expect(page.locator('svg.line-chart')).toBeVisible() // Farbschlag-Verteilung enthält Agouti (mehrere aktive Agouti-Tiere im Seed) await expect(page.locator('.hbar__label', { hasText: 'Agouti' })).toBeVisible() })