docs(claude) : refactorise CLAUDE.md en index + extrait les regles dans .claude/rules/

- CLAUDE.md devient un index concis : contexte, stack, regles absolues
  numerotees, pointeurs vers les fichiers de regles detaillees via
  references @.claude/rules/*.md
- Les conventions detaillees (architecture, backend, frontend, testing,
  naming, git, workflow) sont extraites dans .claude/rules/ pour rester
  chargees a la demande sans gonfler le context du CLAUDE.md principal
- Ajoute la regle absolue "Ne jamais mentionner Claude/IA dans commits
  ou PR" (point 10) pour garder l'historique git signe par l'utilisateur
This commit is contained in:
Matthieu
2026-04-23 11:02:04 +02:00
parent b1255bb57a
commit 711774425b
8 changed files with 398 additions and 298 deletions

36
.claude/rules/testing.md Normal file
View File

@@ -0,0 +1,36 @@
# 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.