## Politique de tests (centralisés) ### Objectifs - Centraliser tous les tests dans `4NK_env/tests//`. - Garantir l’isolation (pas d’état partagé entre tests). - Conserver la compatibilité: les anciens chemins `tests/` des projets sont des liens symboliques vers `4NK_env/tests//` (transition). À terme, référencer directement les chemins centralisés dans docs/CI. ### Arborescence cible ``` 4NK_env/ └── tests/ ├── lecoffre_node/ ├── lecoffre-front/ ├── ihm_client/ ├── sdk_relay/ └── sdk_storage/ ``` ### Isolation et données - Chaque test doit isoler son stockage dans un répertoire unique: `/tmp/.4nk/`. - Éviter toute dépendance à un état global ou à des fichiers hors du répertoire de test. - Ne jamais écrire dans `./data` des projets; préférer des répertoires temporaires par test. ### Exemples d’exécution (projets) - lecoffre_node (scripts custom): ```bash cd /home/debian/4NK_env/lecoffre_node # Exemples (si présents): ./scripts/test-monitoring.sh, ./scripts/test-dashboards.sh ``` - lecoffre-front (Next/Node): ```bash cd /home/debian/4NK_env/lecoffre-front npm test ``` - ihm_client (Vite/Node): ```bash cd /home/debian/4NK_env/ihm_client npm test ``` - sdk_relay / sdk_storage: ```bash cd /home/debian/4NK_env/sdk_relay && cargo test || true cd /home/debian/4NK_env/sdk_storage && cargo test || true ``` ### Bonnes pratiques - Tests hermétiques: créer/détruire ressources durant le test; pas de dépendance sur l’ordre d’exécution. - Logs: si des logs sont nécessaires, écrire vers `/home/debian/4NK_env/logs/tests//`. - CI: ne pas utiliser de chemins relatifs aux anciens `tests/`; cibler `4NK_env/tests//`. ### Migration (transition → cible) 1. Les dossiers `tests/` dans les projets pointent actuellement par symlink vers `4NK_env/tests//`. 2. Mettre à jour progressivement documentation, scripts, CI pour référencer directement les chemins centralisés. 3. Supprimer les symlinks une fois la migration complète validée. ### Vérifications - Pas de dépendances résiduelles aux anciens chemins `./tests` dans scripts/CI: rechercher `\b\./tests\b` et corriger si présent. - Pas d’écriture dans `./data` des projets par les tests; utilisation de `/tmp/.4nk/`. ### Commandes utiles ```bash # Lister les suites de tests centralisées find /home/debian/4NK_env/tests -maxdepth 2 -type d # Rechercher références aux anciens chemins dans le repo grep -R "\b\./tests\b" /home/debian/4NK_env || true ```