Files
ENI-projet-piscine/tests/e2e
dependabot[bot]andGitHub 288970df77 chore(deps-dev): bump typescript
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>
2026-09-23 09:34:42 +00:00
..
2026-09-23 09:34:42 +00:00

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 :

  1. construit et démarre db, mailpit, backend, frontend et proxy avec docker-compose.prod.yml, sur https://localhost et un certificat auto-signé ;
  2. migre, sème demo.sql, crée les comptes ;
  3. joue les parcours, puis publie playwright-report en 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 (ouvrirSession dans beforeAll, mode serial). Rejouer un cookie de refresh dans un autre contexte révoque la famille de session, donc pas de storageState partagé.
  • Un seul worker : la zone auth de 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