/** FEAT-NAMEGEN: UC-1 — 'Name vorschlagen'-Panel auf der GerbilFormPage. */ import { de, expect, skipUnlessMock, test } from './fixtures' const t = de.namegen const tf = de.pages.gerbils.form test('Name-vorschlagen-Panel öffnet sich und zeigt Vorschläge (FEAT-NAMEGEN)', async ({ page }) => { skipUnlessMock() await page.goto('/rennmaeuse/neu') await expect(page.getByRole('heading', { name: tf.createTitle })).toBeVisible() // Panel öffnen await page.getByRole('button', { name: t.button }).click() await expect(page.getByText(t.panelTitle)).toBeVisible() // Vorschläge laden await page.getByRole('button', { name: t.loadButton }).click() // Fenrir ist im Mock immer dabei (kein Buchstabe-Filter) await expect(page.getByRole('button', { name: 'Fenrir' })).toBeVisible() await expect(page.getByText('Wolf aus der Nordischen Mythologie')).toBeVisible() }) test('Klick auf Vorschlag befüllt Namensfeld und schließt Panel (FEAT-NAMEGEN)', async ({ page }) => { skipUnlessMock() await page.goto('/rennmaeuse/neu') await page.getByRole('button', { name: t.button }).click() await page.getByRole('button', { name: t.loadButton }).click() await expect(page.getByRole('button', { name: 'Fenrir' })).toBeVisible() // Klick auf Vorschlag 'Fenrir' await page.getByRole('button', { name: 'Fenrir' }).click() // Panel geschlossen, Name-Feld befüllt await expect(page.getByText(t.panelTitle)).toBeHidden() await expect(page.getByLabel(`${de.pages.gerbils.fields.name} *`)).toHaveValue('Fenrir') }) test('Buchstabe-Filter schränkt Vorschläge ein (FEAT-NAMEGEN)', async ({ page }) => { skipUnlessMock() await page.goto('/rennmaeuse/neu') await page.getByRole('button', { name: t.button }).click() await page.getByLabel(t.letterLabel).fill('F') await page.getByRole('button', { name: t.loadButton }).click() // Mock gibt nur Namen mit F zurück: Fenrir + Freya await expect(page.getByRole('button', { name: 'Fenrir' })).toBeVisible() await expect(page.getByRole('button', { name: 'Freya' })).toBeVisible() // Artemis (A) nicht sichtbar await expect(page.getByRole('button', { name: 'Artemis' })).toBeHidden() }) test('503 NamesKeyMissing zeigt freundlichen Hinweis (FEAT-NAMEGEN)', async ({ page, mockDb }) => { skipUnlessMock() if (mockDb) mockDb.namesConfigured = false await page.goto('/rennmaeuse/neu') await page.getByRole('button', { name: t.button }).click() await page.getByRole('button', { name: t.loadButton }).click() await expect(page.getByText(t.keyMissing)).toBeVisible() })