Bumps the e2e-dependencies group in /tests/e2e with 1 update: [typescript](https://github.com/microsoft/TypeScript). Updates `typescript` from 6.0.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2) --- updated-dependencies: - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: e2e-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
Tests de bout en bout (Playwright)
Parcours utilisateur joués dans Chromium contre une stack qui tourne : frontend, API, base et, en CI, le reverse proxy TLS. Issue #46, décisions dans l'ADR 0015.
Ce qui est couvert
| Fichier | Parcours |
|---|---|
authentification.spec.ts |
Redirection sans session, identifiants refusés, connexion, session conservée au rechargement, déconnexion |
premiere-connexion.spec.ts |
Compte neuf : changement du mot de passe temporaire imposé avant le tableau de bord |
roles.spec.ts |
Lecteur et opérateur sans supervision ni génération, page admin refusée ; admin sur la santé des capteurs |
sites.spec.ts |
Liste des sites, détail (mesure instantanée, historique), recommandations filtrées sur le site |
recommandations.spec.ts |
Génération par l'admin, bilan, isolement d'une alerte (?alert=) |
alertes.spec.ts |
Pagination du fil (« Afficher plus »), filtres par sévérité et par site, fil vide |
mot-de-passe-oublie.spec.ts |
Lien invalide refusé ; réinitialisation par le lien reçu dans Mailpit |
Les parcours s'appuient sur le jeu db/seeds/demo.sql (sites demo-*) et sur les comptes créés
par scripts/comptes-test.sh.
Lancer en local, contre make dev
make e2e-install # une fois : dépendances et Chromium
make dev # dans un autre terminal
make e2e-prepare # sème demo.sql et crée les comptes test-* dans la base de dev
make e2e # joue les parcours contre http://localhost:4200
make e2e-prepare écrit dans la base de make dev : trois sites demo-*, quatorze alertes et
des comptes test-*, dont un administrateur supplémentaire. Ne jamais le lancer contre la
recette ou la prod.
Rapport HTML : cd tests/e2e && npx playwright show-report.
En CI
Le workflow e2e.yml, appelé par ci.yml dès que le frontend, l'API, le proxy, les fichiers
Compose ou ces tests changent :
- construit et démarre
db,mailpit,backend,frontendetproxyavecdocker-compose.prod.yml, surhttps://localhostet un certificat auto-signé ; - migre, sème
demo.sql, crée les comptes ; - joue les parcours, puis publie
playwright-reporten artefact (traces au premier réessai).
Règles d'écriture
- Sélecteurs par rôle, libellé ou
data-testid, jamais par classe CSS de mise en page. - Une session par fichier (
ouvrirSessiondansbeforeAll, modeserial). Rejouer un cookie de refresh dans un autre contexte révoque la famille de session, donc pas destorageStatepartagé. - Un seul worker : la zone
authde nginx admet 30 connexions par minute. - Un parcours qui consomme un compte (premier login, réinitialisation) le crée lui-même par
l'API (
creerCompteTemporaire), pour qu'un nouvel essai ne retombe pas sur un compte déjà activé.
| Variable | Défaut | Rôle |
|---|---|---|
E2E_BASE_URL |
http://localhost:4200 |
Origine du frontend. Doit figurer dans APP_CORS_ORIGINS |
E2E_COMPTES |
aucun, requis | JSON écrit par scripts/comptes-test.sh |
E2E_MAILPIT_URL |
http://localhost:8025 |
API de Mailpit, pour le lien de réinitialisation |