All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 32s
E2E-Tests gegen kochwas-dev
Playwright-Smoketests gegen ein deployed Environment — standardmaessig
https://kochwas-dev.siegeln.net. Loest die bisherigen manuellen
MCP-Runs ab.
Setup (einmalig)
npm install
npx playwright install chromium
Ausfuehren
npm run test:e2e:remote # Headless, alle Tests
npm run test:e2e:remote -- --ui # Mit Playwright-UI (Trace-Viewer)
npm run test:e2e:remote -- --debug # Step-by-Step
Alternative URL:
E2E_REMOTE_URL=https://kochwas.siegeln.net npm run test:e2e:remote
Was abgedeckt ist
Happy Paths (UI)
| Spec | Was |
|---|---|
homepage.spec.ts |
H1, Recents/Alle-Rezepte-Sektionen, Sort-Tabs rendern unterschiedlich, keine Console-Errors |
search.spec.ts |
Lokaler Treffer, Web-Fallback, Empty-State, Deep-Link ?q= |
profile.spec.ts |
Switcher-Dialog, Auswahl persistiert, "Deine Favoriten" erscheint nach Login |
recipe-detail.spec.ts |
Header, Portionen-Skalierung (4->6, Mengen proportional), Favorit-Toggle, Rating persistiert ueber Reload, Gekocht-Counter, Wunschliste-Toggle |
comments.spec.ts |
Eigenen Kommentar erstellen + via UI-Button loeschen; fremder Kommentar hat keinen Delete-Button |
wishlist.spec.ts |
Seite laedt, Sort-Tabs, Header-Badge spiegelt API-Zaehler |
preview.spec.ts |
Guard ohne ?url=, echte URL laedt JSON-LD-Parsing, unparsbare URL zeigt error-box |
admin.spec.ts |
Alle 4 Admin-Subrouten laden mit Tab-Nav, /admin redirected |
Negative Paths (API)
| Spec | Was |
|---|---|
api-errors.spec.ts |
parsePositiveIntParam → 400 Invalid id (4 Call-Sites), validateBody → 400 {message, issues} (4 Call-Sites), 404 auf missing Ressource, Positiv-Sanity fuer /health, /profiles, /domains |
Design-Entscheidungen
workers: 1. Tests mutieren echte Daten auf kochwas-dev (Rating,
Favorit, Wunschliste, Kommentare). Parallelitaet wuerde Race-Conditions
geben. afterEach raeumt per API auf — idempotent.
Hardcoded Test-Fixtures. Rezept-ID 66 (Chicken Teriyaki) und Profile 1/2/3 (Hendrik/Verena/Leana) sind stabil auf dev. Bei DB-Reset muessen ggf. die Konstanten angepasst werden.
Kein Build/Server-Start. Im Gegensatz zur lokalen playwright.config.ts
startet diese Config keinen Preview-Server — die Tests laufen gegen das
CI-Build auf dev.
Was NICHT hier ist
- Service-Worker-Lifecycle / Offline →
tests/e2e/offline.spec.ts(lokal). - Bild-Upload — File-Dialog + echte Dateien; nur manuell sinnvoll.
- Drucken — oeffnet
window.print(), headless unzuverlaessig. - Sync unter Last — braucht dediziertes Harness, nicht Smoke-Scope.