21 lines
1.1 KiB
Markdown
21 lines
1.1 KiB
Markdown
# 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"`
|