Exécution des tests unitaires du backend en local avec docker
Pré-requis: mise en place de l'environnement de dev local: ./00.run-local-env.md
Lancer l'environnement de dev:
./docker-compose.local.run.sh
Restaurer les dumps de test:
# sur les bases 'domifa_test'
_scripts/db/restore-database-docker.sh --db=test
Préparer l'environnement:
# /app/packages/backend
yarn db:test:migrate-up # exécuter les migrations en attente sur la bdd de test
Exécuter les tests unitaires:
# /app/packages/backend
yarn test # tous les tests
# ou bien exécuter un fichier de test spécifique en mode watch:
ENV_FILE=tests-local npx jest --watch -- cron-mails-repository.service.spec.ts
Des tests spéciaux de sécurité sont exécutés via les fichiers app-controllers.*.spec.ts
.
Pour n'exécuter que certains tests de sécurité, renseigner la variable d'environnement DOMIFA_FILTER_SEC_TEST, exemple:
# seulement le test contenant "AgendaController.getAll", pour tous les profils
DOMIFA_FILTER_SEC_TEST="AgendaController.getAll" ENV_FILE=tests-local npx jest -- app-controllers.*.spec.ts
# seulement les tests contenant "AgendaController", juste pour le profil super-admin
DOMIFA_FILTER_SEC_TEST=Agenda ENV_FILE=tests-local npx jest -- app-controllers.super-admin-domifa.spec.ts
Note: il est aussi possible de filter par tags: https://codecept.io/advanced/#tags
Installer la dernière version des dumps:
# sur les bases 'domifa_test'
_scripts/db/restore-database-docker.sh --db=test
Démarrer l'application sur la base de test
yarn start:tests-local
Utiliser l'application normalement via le navigateur, et faire les modifications souhaitées.
Enfin, mettre à jour les dumps avec des modifications:
_scripts/db/make-dump-database-docker.sh --db=test
_scripts/db/update_test_dumps.sh
Relancer les tests pour vérifier.
yarn test