Commit Graph

2 Commits

Author SHA1 Message Date
tristan 091ccb6f28 test(catalog) : cover useCategoriesAdmin and useCategoryForm composables
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m50s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 59s
Adds 42 Vitest unit tests for the two composables extracted from the
admin categories page in ERP-50.

- useCategoriesAdmin (14 tests): fetchAll/fetchTypes, includeDeleted toggle,
  loading flags, error handling, reset, singleton sharing.
- useCategoryForm (28 tests): validation rules RG-1.02/1.04/1.05, trim,
  POST/PATCH/DELETE wiring, 409 (RG-1.07) and 422 violation mapping,
  isDirty, loadFrom, reset, instance isolation.

Mocks useApi/useI18n/useToast via vi.stubGlobal and ~/shared/stores/auth
to keep the suite hermetic (no backend required).
2026-05-29 09:53:14 +02:00
tristan 9a21384fb6 refactor(catalog) : extract page logic into useCategoriesAdmin and useCategoryForm composables
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m16s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Failing after 10s
Extrait la logique fetch/CRUD inline de la page categories (ERP-49) vers
deux composables dedies, conformement au pattern Starseed :

- useCategoriesAdmin : singleton state (categories + types + loading +
  error). Pre-chargement des types au mount de la page (au lieu du
  fetch par ouverture du drawer). Reset au logout via
  onAuthSessionCleared + appel explicite dans logout.vue.

- useCategoryForm : state local par form (pas singleton). Valide
  cote client en miroir des RG back (RG-1.02 / RG-1.04 / RG-1.05),
  mappe les erreurs 409 (doublon RG-1.07) et 422 (violations API
  Platform) sur les bons champs. submitCreate / submitUpdate /
  submitDelete renvoient la ressource ou null pour decoupler la
  decision de fermeture du drawer.

La page et le drawer deviennent purement presentationnels. Aucune
regression UX : meme validations, memes toasts, meme pattern
view -> edit du drawer (via isDirty expose par useCategoryForm).
2026-05-29 08:29:12 +02:00