import { test, expect } from '@playwright/test'; test.describe('Suche', () => { test('lokaler Treffer erscheint live beim Tippen', async ({ page }) => { await page.goto('/'); await page.getByRole('searchbox', { name: 'Suchbegriff' }).fill('lasagne'); await expect(page.getByRole('link', { name: /Pfannen Lasagne/i })).toBeVisible({ timeout: 5000 }); }); test('Web-Fallback bei unbekanntem Begriff', async ({ page }) => { // Direkt per URL — spart den Debounce-Timer. await page.goto('/?q=pizza+margherita'); await expect(page.getByText(/Keine lokalen Rezepte/i)).toBeVisible({ timeout: 15000 }); // Mindestens ein Web-Treffer mit einer Domain-Labeling. await expect(page.getByText(/chefkoch\.de|rezeptwelt\.de/i).first()).toBeVisible(); }); test('echter Empty-State bei Nonsense-Begriff', async ({ page }) => { await page.goto('/?q=xxyyzznotarecipexxxxxxxx'); await expect( page.getByText(/Schaue unter den Topfdeckeln|Noch nichts gefunden|keine Rezepte/i) ).toBeVisible({ timeout: 15000 }); }); test('Deep-Link ?q=lasagne stellt Query im Input wieder her', async ({ page }) => { await page.goto('/?q=lasagne'); const sb = page.getByRole('searchbox', { name: 'Suchbegriff' }); await expect(sb).toHaveValue('lasagne'); }); });