Upsert des unit tests¶
Minimalisme : tester la logique pure custom, rien d'autre. Jamais de commit. Les tests s'ajoutent via ce skill ou sur demande explicite — jamais spontanément pendant une implem (cf. api-conventions.mdc §Tests).
Étape 0 — Charger les rules¶
.cursor/rules/test-conventions.mdc— stack Vitest, « tester le custom, pas la lib », AI-slop checklist, naming des fichiersprojects/api/.cursor/rules/api-conventions.mdc§Business — fonctions pures, 100% couverture
Étape 1 — Collecter le scope¶
- Cible nommée par l'utilisateur → la prendre telle quelle
- Sinon pending :
git status --short+git diff HEAD; branche :git diff develop...HEAD
Étape 2 — Filtrer les cibles (logique pure uniquement)¶
Éligible :
business/— 100% couverture exigée (seule couche où les unit tests sont obligatoires)- Helpers purs de
lib/, refinements de validators (.and(...)), mappers purs
Red flag stop : le test exigerait vi.mock d'un module interne, de la DB ou d'un provider (ex. notif Slack dans un service) → mauvaise cible. Si la cible est un controller / cron / worker / webhook, proposer /upsert-integration-tests ; sinon pas de test. Ne jamais écrire un test d'intégration déguisé en unitaire.
Étape 3 — Écrire¶
- Placement + naming fichiers : cf. test-conventions §Vitest (
__tests__/colocalisé) - Scope et frugalité : cf. test-conventions §Scope
- Pas de mocks ; horloge → la fonction prend
nowen param (cf. api-conventions §Business) - Appliquer l'AI-slop checklist de
test-conventions.mdc
Étape 4 — Lancer¶
- Run ciblé :
pnpm --filter @bricks/api test:unit -- <fichier>(ou le--filterdu package touché) - Cible
business/: vérifier que chaque branche de la fonction est exercée (100%)