corentin_wakdo/tests/Integration
Imugiii d3dcc36bc4
All checks were successful
CI / secret-scan (pull_request) Successful in 9s
CI / php-lint (pull_request) Successful in 24s
CI / static-tests (pull_request) Successful in 47s
CI / js-tests (pull_request) Successful in 20s
CI / secret-scan (push) Successful in 8s
CI / php-lint (push) Successful in 21s
CI / static-tests (push) Successful in 52s
CI / js-tests (push) Successful in 18s
CI / auto-merge (pull_request) Successful in 5s
CI / auto-merge (push) Has been skipped
feat(admin): gestion des comptes back-office (CRUD users + RGPD, PIN+audit) (P3)
Lot U du cycle P3 (Users/RBAC/Stats). Gestion complete des comptes back-office
(mlt domaine 10) : toutes les mutations sont des actions sensibles (RG-T13) avec
re-autorisation par PIN equipier + ligne audit_log dans la meme transaction
(RG-T14), throttle PIN par acteur agissant (RG-T22).

- UserRepository : all (JOIN role) / find / emailExists / activeRoleExists /
  create / update (allowlist RG-T16) / setPasswordHash / clearPin / deactivate /
  anonymise (RGPD mlt 10.5, tombstone idempotent) / activeAdminCount / isAdmin.
- UserController (user.read/create/update/deactivate) : index ; create/store ;
  edit/update ; deactivate ; reset-pin ; erase-PII. Helper resolvePin mutualise
  le flux throttle+verif+pin.failed. details JSON d'audit = noms de champs/role
  (pas de PII). Conflit d'unicite email -> 409 (convention PR-0).
- Garde-fous d'integrite : pas d'auto-desactivation (mlt 10.3 PRE-2 -> 403) ; on
  ne peut ni desactiver, ni retrograder, ni anonymiser le DERNIER admin actif
  (anti-lockout) ; erase deja anonymise -> 409.
- Vues admin/users/{index,form,confirm} (PIN inline), 11 routes, nav Administration.

Tests : unit 251, integration 285 / 867 assertions (WAKDO_DB_TESTS=1, dont
UserControllerTest 18 + UserRepositoryDbTest 5), PHPStan L6 propre.
2026-06-17 11:47:28 +00:00
..
AuthorizerDbTest.php feat: RBAC P2 (autorisation par permission + garde de session + /api/me) (#12) 2026-06-15 20:45:19 +02:00
AuthServiceDbTest.php feat: authentification back-office P2 (login/logout/reset, throttle, audit) (#11) 2026-06-15 20:18:59 +02:00
CategoryRepositoryDbTest.php feat: CRUD categories P3 (rendu serveur, garde + CSRF + validation) (#15) 2026-06-15 21:45:31 +02:00
IngredientRepositoryDbTest.php feat(admin): stock ingredients - CRUD, restock, inventaire PIN, mouvements (P3, mlt 8.8 + domaine 9) (#34) 2026-06-17 11:11:31 +02:00
MenuRepositoryDbTest.php feat(admin): CRUD menus composes avec slots (P3, mlt 8.4-8.6) (#32) 2026-06-16 15:39:09 +02:00
PinThrottleDbTest.php feat(admin): throttle du PIN d action sensible par acteur (RG-T22) (#18) 2026-06-16 00:06:33 +02:00
PinVerifierDbTest.php feat: PIN d action sensible P2 (PinVerifier RG-T13) (#13) 2026-06-15 21:00:11 +02:00
ProductIngredientDbTest.php feat(admin): recettes produit - composition product_ingredient + dispo calculee RG-T21 (P3, ferme #27) (#35) 2026-06-17 11:29:07 +02:00
ProductRepositoryDbTest.php feat(admin): CRUD produits avec PIN conditionnel et audit (#17) 2026-06-15 22:35:50 +02:00
StatsRepositoryDbTest.php feat(admin): tableau de bord statistiques (catalogue + sante stock RG-T21) (P3) (#37) 2026-06-17 12:37:58 +02:00
UserRepositoryDbTest.php feat(admin): gestion des comptes back-office (CRUD users + RGPD, PIN+audit) (P3) 2026-06-17 11:47:28 +00:00