# Tests ## Trois suites | Suite | Commande | Outil | Where | |---|---|---|---| | Back | `make test` | PHPUnit | Container PHP ; fixtures dediees sous `tests/Fixtures/` | | Front unitaire | `make nuxt-test` | Vitest (happy-dom) | Container Node ; <30s ; composables/utils/stores | | Front E2E | `make test-e2e` | Playwright | **Host** (pas container, navigateur reel requis) | Bootstrap E2E (une fois par poste de dev) : `make install-e2e-deps` (Chromium + libs systeme, sudo). Re-run uniquement si `@playwright/test` upgrade majeur. Workflow E2E : `make start && make seed-e2e && make dev-nuxt` (terminal 1), `make test-e2e` (terminal 2). UI interactive pour debug : `make test-e2e-ui`. ## Regle d'or E2E **Un nouveau test E2E ne s'ajoute QUE si un bug critique est passe en prod.** Sinon, la bonne place est un test unitaire Vitest : - Plus rapide - Plus stable - Moins de faux positifs Pour etendre la couverture RBAC, etendre un **persona existant** dans `frontend/tests/e2e/_fixtures/personas.ts` plutot que de creer un nouveau test. ## Matrice RBAC — 3 endroits obligatoires Ajouter/modifier une permission testable = toucher les 3 miroirs (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 3. `src/Module/Core/Infrastructure/Console/SeedE2ECommand.php` — miroir back du meme persona Tout changement sur l'un des trois sans les deux autres = test casse ou faux positif.