test-check
Vérifie que les changements de la PR n'ont pas cassé de tests existants (🔵 Angular/Jest + 🟠 Java/Maven). Lance les tests impactés et appelle /test-implement si des tests échouent.
Files1
View on GitHubSKILL.mdskills/test-check/SKILL.md
GitHubTest Check Skill
Required configuration
Aucune variable d'environnement requise.
Prérequis :
- 🔵 Front : Jest configuré dans le projet (ou ng test avec jest runner)
- 🟠 Back : Maven installé (
mvn --version)
Available commands
/test-check
Détecte les tests existants impactés par les changements de la PR, les lance, et déclenche /test-implement si des tests échouent.
Detailed behaviour
Step 1 — Lister les fichiers modifiés par domaine
# Fichiers Angular modifiés (hors specs)
git diff main...HEAD --name-only | grep '\.ts$' | grep -v '\.spec\.ts$'
# Fichiers Java modifiés (hors tests)
git diff main...HEAD --name-only | grep '\.java$' | grep -v 'Test\.java$'
🔵 Front — Angular
Step 2a — Trouver les specs Angular existantes impactées
Pour chaque fichier .ts modifié, chercher les *.spec.ts déjà existants qui :
- Ont un nom correspondant au fichier modifié (convention Angular) :
find src/ -name "<FILE_BASENAME>.spec.ts" - Ou importent la classe ou le fichier modifié :
grep -rl "<CLASS_NAME>\|<FILE_BASENAME>" src/ --include="*.spec.ts"
Combiner et dédupliquer (sort -u).
⚠️ Ne pas créer de nouvelles specs — seules les specs existantes sont concernées. La création est déléguée à
/test-implement.
Step 3a — Lancer les specs Angular impactées
Détecter le runner disponible :
npx jest --version 2>/dev/null && echo "jest" || echo "ng"
Avec Jest (préféré) :
npx jest --testPathPattern="<spec1>|<spec2>|..." --no-coverage
Avec ng test :
ng test --watch=false --no-progress \
--include="<spec1>" --include="<spec2>"
⚠️ Toujours passer
--watch=falseavecng test— sans ce flag la commande bloque indéfiniment en mode watch.
🟠 Back — Java
Step 2b — Trouver les tests Java existants impactés
Pour chaque fichier .java modifié (ex: src/main/java/com/dedalus/MyService.java), chercher la classe de test correspondante dans src/test/java/ :
# Convention : MyService.java → MyServiceTest.java
CLASS_NAME=$(basename <fichier.java> .java)
find src/test/java/ -name "${CLASS_NAME}Test.java"
Si aucun test trouvé pour une classe modifiée, le signaler sans bloquer (délégué à
/test-implement).
Step 3b — Lancer les tests Java impactés
mvn test -Dtest="<TestClass1>,<TestClass2>" -pl <module> --no-transfer-progress
Si les classes de test sont dans des modules Maven différents, lancer une commande par module.
Step 4 — Présenter les résultats
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 Test Check — Résultats
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔵 Front Angular
📂 Fichiers modifiés analysés : <N>
🎯 Specs existantes impactées : <N>
✅ Tests passants : <N>
❌ Tests en échec : <N>
🟠 Back Java
📂 Fichiers modifiés analysés : <N>
🎯 Tests existants impactés : <N>
✅ Tests passants : <N>
❌ Tests en échec : <N>
❌ Détail des échecs :
Fichier : <test-file>
Classe : <describe / class>
Test : <test name>
Erreur : <message d'erreur>
Step 5 — Décision finale
Si tous les tests passent → afficher :
✅ Aucune régression détectée. Tu peux continuer avec /code-lint.Si des tests échouent → afficher :
⛔ Des régressions détectées. Lancement de /test-implement pour corriger.Puis appeler automatiquement
/test-implementpour corriger les tests en échec.
Error handling
| Situation | Comportement |
|---|---|
| Aucun test existant trouvé | Signaler + continuer sans bloquer |
| Jest non installé | Tenter ng test --watch=false ; si absent aussi → ❌ Aucun runner Angular trouvé. |
| Maven non installé | ❌ Maven introuvable. Vérifier l'installation. |
| Tests en échec | Appeler automatiquement /test-implement |