/** * DESIGN (Rennmaus Filter.html): Quick-Chips-Filter der Rennmäuse-Liste. * * Eine Pillen-Reihe (Status / Geschlecht / Farbschlag / Herkunft) öffnet je ein * Bottom-Sheet mit Mehrfachauswahl; gewählte Werte erscheinen als entfernbare * Chips, „Alle löschen" setzt zurück. Mobile-first; identisches Verhalten auf Desktop. */ import { de, expect, gotoSection, selectListFilter, skipUnlessMock, test } from './fixtures' const t = de.pages.gerbils test.describe('Quick-Chips-Filter – Rennmäuse-Liste', () => { test('Kategorie-Pillen sind sichtbar', async ({ page }) => { skipUnlessMock() await gotoSection(page, de.nav.gerbils) await expect(page.getByRole('heading', { name: t.title, exact: true })).toBeVisible() const quickrow = page.locator('.rmf-quickrow') await expect(quickrow.getByRole('button', { name: t.filters.status })).toBeVisible() await expect(quickrow.getByRole('button', { name: t.filters.gender })).toBeVisible() await expect(quickrow.getByRole('button', { name: t.filters.colorVariety })).toBeVisible() await expect(quickrow.getByRole('button', { name: t.fields.origin })).toBeVisible() }) test('Mehrfachauswahl erzeugt entfernbare Chips, „Alle löschen" setzt zurück', async ({ page, }) => { skipUnlessMock() await gotoSection(page, de.nav.gerbils) // Default: Zucht-Chip ist aktiv. await expect(page.locator('.rmf-chip-val', { hasText: t.statusLabels.Breeding })).toBeVisible() // Geschlecht = männlich über das Sheet wählen → zweiter Chip erscheint. await selectListFilter(page, t.filters.gender, t.genderLabels.male) await expect(page.locator('.rmf-chip-val', { hasText: t.genderLabels.male })).toBeVisible() // „Alle löschen" entfernt sämtliche Chips. await page.getByRole('button', { name: de.filterBar.clearAll }).click() await expect(page.locator('.rmf-chip')).toHaveCount(0) }) test('Einzelner Chip lässt sich per Klick entfernen', async ({ page }) => { skipUnlessMock() await gotoSection(page, de.nav.gerbils) const breedingChip = page.locator('.rmf-chip', { has: page.locator('.rmf-chip-val', { hasText: t.statusLabels.Breeding }), }) await expect(breedingChip).toBeVisible() await breedingChip.click() await expect(breedingChip).toHaveCount(0) }) })