2026-04-18 17:01:39 +02:00
|
|
|
import { defineConfig } from '@playwright/test';
|
|
|
|
|
|
|
|
|
|
// E2E-Tests nutzen den SvelteKit-Preview-Build. `npm run build` muss
|
|
|
|
|
// vor den Tests gelaufen sein — Playwright startet dann nur den
|
|
|
|
|
// Preview-Server (kein Dev-Server, damit der SW registrierbar ist).
|
|
|
|
|
export default defineConfig({
|
|
|
|
|
testDir: 'tests/e2e',
|
test(e2e): Playwright Smoketests gegen kochwas-dev (remote)
Automatisierte End-to-End-Tests gegen ein deployed Environment. Loest
die manuellen MCP-Playwright-Runs ab. 42 Tests in 9 Files:
- homepage: H1, Sektionen, Sort-Tabs, Console-Errors
- search: lokaler Treffer, Web-Fallback, Empty-State, Deep-Link
- profile: Switcher, Auswahl-Persistenz, Favoriten-Section, Guard-Dialog
- recipe-detail: Header, Portionen-Scaling (4->6), Favorit-Toggle,
Rating-Persistenz ueber Reload, Gekocht-Counter, Wunschliste-Toggle
- comments: eigenen erstellen+loeschen via UI, fremder hat kein Delete
- wishlist: Seite, Sort-Tabs, Badge-Sync, requireProfile-Custom-Message
- preview: Guard ohne ?url=, echte URL parst, unparsbare zeigt error-box
- admin: alle 4 Subrouten + /admin redirect
- api-errors: parsePositiveIntParam (4x Invalid id), validateBody (4x
Invalid body + issues), 404, Sanity /health /profiles /domains
Architektur:
- Separate playwright.remote.config.ts (getrennt von local preview)
- workers: 1 + afterEach API-Cleanup (rating, favorite, wishlist, comments)
- Hardcoded Recipe-ID 66 + Profile 1/2/3 — stabile Dev-DB-Seeds
- E2E_REMOTE_URL ueberschreibt die Ziel-URL
Ausfuehrung: npm run test:e2e:remote
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 12:14:04 +02:00
|
|
|
testIgnore: ['tests/e2e/remote/**'],
|
2026-04-18 17:01:39 +02:00
|
|
|
fullyParallel: false,
|
|
|
|
|
reporter: 'list',
|
|
|
|
|
use: {
|
|
|
|
|
baseURL: 'http://localhost:4173',
|
|
|
|
|
headless: true,
|
|
|
|
|
serviceWorkers: 'allow'
|
|
|
|
|
},
|
|
|
|
|
webServer: {
|
|
|
|
|
command: 'npm run preview',
|
|
|
|
|
url: 'http://localhost:4173',
|
|
|
|
|
reuseExistingServer: !process.env.CI,
|
|
|
|
|
timeout: 30_000
|
|
|
|
|
}
|
|
|
|
|
});
|