test(e2e) : initialise la suite Playwright (login + sidebar RBAC)
- 11 tests couvrant le login (3) et la visibilite sidebar par RBAC (8) - 6 personas seedes via la commande app:seed-e2e, miroir cote front dans frontend/tests/e2e/_fixtures/personas.ts - Page Objects (LoginPage, SidebarComponent) avec selecteurs stables par href + loginAs programmatique via cookie BEARER - Targets Makefile : seed-e2e, test-e2e, test-e2e-ui, install-e2e-deps - CLAUDE.md + README.md : workflow E2E + regle d'or "un E2E par bug prod uniquement" pour garder la suite maintenable dans la duree Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
31
CLAUDE.md
31
CLAUDE.md
@@ -175,6 +175,7 @@ make migration-migrate # Lancer les migrations
|
||||
make fixtures # Charger les fixtures
|
||||
make db-reset # Reset BDD + migrations + fixtures
|
||||
make test # PHPUnit
|
||||
make nuxt-test # Vitest (tests unitaires frontend)
|
||||
make php-cs-fixer-allow-risky # Fix code style PHP
|
||||
make logs-dev # Tail logs Symfony
|
||||
```
|
||||
@@ -185,6 +186,36 @@ docker exec -t -u root php-coltura-fpm chown -R www-data:www-data /var/www/html/
|
||||
docker exec -t -u www-data php-coltura-fpm php bin/console cache:clear
|
||||
```
|
||||
|
||||
### Tests E2E (Playwright)
|
||||
|
||||
La suite E2E vit dans `frontend/tests/e2e/` (personas, Page Objects, specs). Elle tourne sur l'host (Playwright a besoin d'un navigateur reel, pas dans un container PHP).
|
||||
|
||||
**Bootstrap one-time par poste de dev :**
|
||||
```bash
|
||||
make install-e2e-deps # Telecharge Chromium + installe les libs systeme (sudo)
|
||||
```
|
||||
A relancer uniquement si `@playwright/test` upgrade de version majeure.
|
||||
|
||||
**Workflow nominal :**
|
||||
```bash
|
||||
# Terminal 1
|
||||
make start # Containers up
|
||||
make seed-e2e # Cree les 6 personas e2e.* (idempotent)
|
||||
make dev-nuxt # Dev server sur :3004 (garder ouvert)
|
||||
|
||||
# Terminal 2
|
||||
make test-e2e # Run la suite
|
||||
# ou
|
||||
make test-e2e-ui # UI interactive pour debug
|
||||
```
|
||||
|
||||
**Regle d'or E2E** (a respecter pour garder la suite maintenable sur la duree) : un nouveau test E2E ne s'ajoute QUE quand un bug critique est passe en prod. Sinon, la bonne place est un test unitaire Vitest (plus rapide, plus stable). Cf. `frontend/tests/e2e/_fixtures/personas.ts` pour etendre la matrice RBAC via un persona existant plutot que d'ajouter un test.
|
||||
|
||||
**Etendre la matrice RBAC** : pour ajouter une permission testable, toucher les 3 endroits (sinon drift garanti) :
|
||||
1. `config/sidebar.php` — attacher `permission` au bon item
|
||||
2. `frontend/tests/e2e/_fixtures/personas.ts` — ajuster `permissions` + `expectedAdminLinks` d'un persona existant (ne pas creer de nouveau persona par reflexe)
|
||||
3. `src/Module/Core/Infrastructure/Console/SeedE2ECommand.php` — miroir back du meme persona
|
||||
|
||||
## Conventions
|
||||
|
||||
### Commits
|
||||
|
||||
Reference in New Issue
Block a user