Finanzmanager/tests/e2e
fds2610-bot 4e3230c888 Buchungsmaske nennt das Konto und passt auf einen Bildschirm
Neue Buchung und Buchung bearbeiten zeigen oben das Konto, in dem die
Buchung liegt. Die Maske steht zweispaltig, die Beschriftungen links
neben ihren Eingaben und die Erklärungen in deren Tooltip – damit endet
sie samt Splitzeilen und Knopfleiste oberhalb der Fensterhöhe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 23:36:47 +02:00
..
specs Buchungsmaske nennt das Konto und passt auf einen Bildschirm 2026-08-17 23:36:47 +02:00
package-lock.json Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
package.json Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
playwright.config.js Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
README.md Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
run.sh Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00

E2E-Tests

Browser-Tests mit Playwright, ausgeführt über das Projekt 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:

docker compose up -d

Einmalig den Testnutzer anlegen:

docker compose exec -u www-data php php scripts/e2e-benutzer.php

Ausführen

tests/e2e/run.sh

Fehlt Docker, der Runner oder das Playwright-Image, wird mit Exit-Code 0 übersprungen statt fehlzuschlagen.

Abweichende Werte:

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:

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).