Tests¶
TxRide kennt zwei Testebenen: schnelle Unit-Tests mit dem Bun-Testrunner und End-to-end-Tests mit Cypress gegen die laufende Web-App.
Unit-Tests (Bun)¶
Integrationstests, die echte Infrastruktur brauchen (Keycloak, API, Datenbank), sind über die Umgebungsvariable TXRIDE_INTEGRATION=1 abgesichert und laufen nur, wenn der Dev-Stack steht:
bun run dev:infra:up
bun run smoke:keycloak
TXRIDE_INTEGRATION=1 bun test packages/api/test/smoke.crud.test.ts
End-to-end-Tests (Cypress)¶
Auf NixOS immer über nix develop
Das Cypress-Binary wird über flake.nix bereitgestellt (CYPRESS_RUN_BINARY). Starte Cypress deshalb auf NixOS stets innerhalb der Nix-Shell, sonst fehlen statisch gelinkte Abhängigkeiten.
Web-App und Tests in zwei Terminals starten:
nix develop -c bun run dev # Terminal 1: Web-App
nix develop -c bun run cypress:web # Terminal 2: Tests
Vorhandene Specs¶
| Spec | Was geprüft wird |
|---|---|
e2e/smoke.cy.ts |
Startseite mit Karte lädt |
e2e/presentation.cy.ts |
Routen-Navigation, Admin-Guard, Karten-Overlay |
e2e/i18n.cy.ts |
Sprachwechsel en/de über localStorage |
e2e/auth-login.cy.ts |
Keycloak-Login (übersprungen ohne CYPRESS_INTEGRATION=1) |
e2e/doc-screenshots.cy.ts |
erzeugt die Handbuch-Screenshots im Telefon-Viewport |
Integrationslauf mit Login¶
Für Tests, die echtes Login und API benötigen, müssen Infrastruktur, Web-App und API parallel laufen:
nix develop -c bun run dev:infra:up
nix develop -c bun run dev # Web
nix develop -c bun run dev:api # API
nix develop -c bun run cypress:web:integration
Handbuch-Screenshots erzeugen¶
Die Abbildungen in der Kundendokumentation entstehen automatisiert im Telefon-Viewport (390 × 844):