Un fichier docker-compose.yml
se trouve à la racine du projet et permet de démarrer simplement le projet si vous le souhaitez
Avertissement : le hot reload ne fonctionnera pas sur l'application NextJS si vous utilisez docker
⚠️
- Avoir un serveur postgresql disponible et démarré
- Créer une base de donnée
pilote
par exemple - Copier le fichier
.env.example
avec le nom.env
, et bien mettre à jour la variable d'environnementDATABASE_URL
- Créer les tables et populer la base avec un jeu de test (attention cette action peut prendre du temps [> 30 secondes])
npm run database:seed
npm run dev
- Avoir un serveur postgresql disponible et démarré
- Créer une base de donnée
pilote_test
par exemple - Copier le fichier
.env.example
avec le nom.env.test
, et bien mettre à jour la variable d'environnementDATABASE_URL
Avertissement : si vous n'avez pas de fichier
.env.test
et que vous avez un fichier.env
, Jest va le trouver et lancer les tests sur votre base locale de run⚠️
- Créer les tables avec la commande suivante
npm run test:database:init
- Afin de s'assurer que tous les tests et que les linters sont au vert avant de démarrer le développement lancer les deux commandes
npm run test
npm run lint
Une base de données de test identique à la base de développement est créée dans le data_management/docker-compose.yml, il s'agit de testing
dans le container postgres_tests
, exposée sur localhost:5433
.
Pour lancer les tests qui vont s'exécuter sur cette base:
cp .env.test.example .env.test
: copier le.env.test.example
vers.env.test
- [docker]
docker-compose -f docker-compose.tests.yml up
pour lancer les tests via Docker. - [local] OU
/bin/bash scripts/run_tests.sh
pour lancer les tests en local - pour recréer une base de données vide, supprimer
Remarque: En utilisant le script
scripts/run_tests.sh
, les variables dans.env.test
vont remplacer celles dans.env
si des variables sont définies dans les deux fichiers. C'est utile pour$DATABSE_URL
entre autres, mais vous pouvez changer la valeur d'autres variables également.
- Il existe de nombreuses sous commandes permettant de lancer les tests de manière isolés (unitaire, intégration, client, server). Se référer au package.json pour plus d'informations.
- Afin de lancer les tests en mode watch, vous pouvez ajouter cette option
-- --watch
à la tâche npm :
npm run test:client -- --watch
- Avoir suivi les étapes pour avoir lancer l'application en mode dev
- Ne pas avoir le serveur de développement de lancé
npm run build
npm run start
Commande | Fonction |
---|---|
npm run dev | Lance le site en mode développeur (avec hot reload) |
npm run build | Prépare les fichiers (optimisations) afin de pouvoir les mettre en prod |
npm run start | Lance un serveur en local qui utilise les fichiers créés pour la production (cf build) |
npm run lint | Lance le linter ESLint, Typescript et Stylelint |
npm run lint:fix | Lance le linter ESLint et Stylelint et tente de corriger les erreurs automatiquement |
npm run lint:eslint | Lance le linter ESLint |
npm run lint:tsc | Lance le linter Typescript |
npm run lint:stylelint | Lance le linter Stylelint |
npm run test | Lance tous les tests (front et back) |
npm run test:ci | Utilisé par la CI. Lance tous les tests (front et back) |
npm run test:client | Lance tous les tests côté front (dossier src/client) |
npm run test:client:unit | Lance les tests unitaires côté front (dossier src/client) |
npm run test:client:integration | Lance les tests d'intégration côté front (dossier src/client) |
npm run test:client:coverage | Lance les tests d'intégration côté front et permet d'obtenir le code coverage |
npm run test:server | Lance tous les tests côté back (dossier src/server) |
npm run test:server:unit | Lance les tests unitaires côté back (dossier src/server) |
npm run test:server:integration | Lance les tests d'intégration côté back (dossier src/server) |
npm run test:server:domain:coverage | Lance les tests du dossier domain dans le back et permet d'obtenir le code coverage |
npm run test:server:infrastructure:coverage | Lance les tests du dossier infrastructure dans le back et permet d'obtenir le code coverage |
npm run test:database:init | Permet de réinitialiser la base de donnée de test sans aucune données |
npm run database:init | Permet de réinitialiser la base de donnée sans aucune données |
npm run database:seed | Permet de réinitialiser la base de donnée et de la populer avec un jeu de test |
npm run postdeploy | Utilisé automatiquement lors du déploiement sur Scalingo afin de jouer les migrations Prisma |
npm ci | Installation et mise à jour des dépendance node |