# Règles — Tests ## Couverture - Tout nouveau fichier `.ts` doit avoir un fichier `.spec.ts` correspondant. - Maintenir les seuils de couverture définis dans `vitest.config.ts` : lignes ≥ 90 %, fonctions ≥ 90 %, branches ≥ 80 %, statements ≥ 90 %. ## Structure des tests - Un `describe` par classe ou fonction testée. - Un `it` par comportement précis ; le libellé décrit le résultat attendu, pas l'implémentation. - Utiliser `beforeEach` pour le setup commun ; ne pas dupliquer la configuration entre les `it`. ## Mocks - Ne pas mocker les dépendances Angular internes (Router, ActivatedRoute) sauf si indispensable. - Mocker les services HTTP (`*ApiService`) avec des réponses fixes via `vi.fn()`. - Pour mocker un constructeur (ex. `FileReader`), utiliser `vi.stubGlobal` avec une `class`, pas une arrow function. - Appeler `vi.unstubAllGlobals()` dans `afterEach` après chaque `vi.stubGlobal`. ## Commandes - Lancer tous les tests : `npx ng test --watch=false` - Lancer un fichier précis : `npx ng test --watch=false --include="**/mon-fichier.spec.ts"`