Finanzmanager/tests/e2e
fds2610-bot 20b2406219 Budgetplaner: drei Ansichten und Verteilen über das Zahnrad
Abgelaufene Monate werden nicht mehr zusammengefasst – alle zwölf Monate
stehen einzeln da und bleiben beplanbar. Statt Verlauf und alle Monate
gibt es Alles, Nur Budget und Nur IST; die Budgetspalte ist überall dort
editierbar, wo sie steht.

Das Zahnrad vor jedem Feld verteilt dessen Wert auf das ganze oder das
restliche Jahr. Es arbeitet auf den Eingabefeldern statt auf der
Datenbank: Das Ergebnis ist vor dem Speichern zu sehen und geht mit
demselben Knopf weg wie jede andere Änderung.

Nebenbei: app.js war doppelt eingebunden, jeder Handler lief zweimal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 08:22:35 +02:00
..
specs Budgetplaner: drei Ansichten und Verteilen über das Zahnrad 2026-08-11 08:22:35 +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).