Finanzmanager/tests/e2e/README.md
fds2610-bot b1712bb7ea Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB
Docker Compose mit drei Services (nginx auf Port 8000), Migrationsmechanik,
Update- und Backup-Skript. Anwendung: Router mit CSRF-Prüfung, Anmeldung und
Ersteinrichtung, zentraler Einstellungsdialog mit Reitern, ein- und
ausschaltbares Debug-Log mit Maskierung von Zugangsdaten.

Layout nach Vorbild des FinanzManagers: feste Navigation links,
Werkzeugleiste oben, Tab-Leiste; Farbschema hell/dunkel/System.

Tests: 51 PHP-Prüfungen und 7 Playwright-Tests, alle grün.
2026-08-09 20:21:42 +02:00

57 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# E2E-Tests
Browser-Tests mit Playwright, ausgeführt über das Projekt
[`e2e-runner`](../../../e2e-runner). Auf dem Host wird nichts installiert – der
Runner startet je Lauf einen frischen Container und räumt ihn danach weg.
## Voraussetzungen
Die Anwendung muss **vor** dem Testlauf laufen und vom Host erreichbar sein:
```bash
docker compose up -d
```
Einmalig den Testnutzer anlegen:
```bash
docker compose exec -u www-data php php scripts/e2e-benutzer.php
```
## Ausführen
```bash
tests/e2e/run.sh
```
Fehlt Docker, der Runner oder das Playwright-Image, wird mit Exit-Code 0
übersprungen statt fehlzuschlagen.
Abweichende Werte:
```bash
BASE_URL=http://host.docker.internal:8000 tests/e2e/run.sh
E2E_USER=e2e E2E_PASSWORD=geheim tests/e2e/run.sh
E2E_RUNNER_DIR=/pfad/zum/runner tests/e2e/run.sh
```
## Lockfile
`package.json` pinnt `@playwright/test` auf die Version des Runner-Images
(aktuell 1.61.1). Das Lockfile wird ohne lokale Node-Installation erzeugt:
```bash
docker run --rm -u "$(id -u):$(id -g)" -e HOME=/tmp -v "$PWD/tests/e2e":/work -w /work \
mcr.microsoft.com/playwright:v1.61.1-noble npm install --package-lock-only
```
## Welche Ebene wofür
Hierher gehört nur, was einen Browser braucht: Formularabläufe, Redirects,
gerenderte Views, JavaScript. Rechen- und Model-Logik gehört in die PHP-Suite
(`tests/NN_*.php`) – schneller und isoliert.
## Berichte
HTML-Report, Screenshots und Traces landen nach einem Lauf in
`playwright-report/` und `test-results/` (beide nicht im Repository).