ci-cd-ynov-julien-pradier
v1.0.0
Published
  .
🚀 Fonctionnalités CI/CD
Ce dépôt intègre une automatisation complète via GitHub Actions :
Intégration Continue (CI) : Installation des dépendances, build de l'application et exécution des tests unitaires à chaque push
Qualité du Code : Analyse de la couverture de code et envoi automatique du rapport vers Codecov
Documentation : Génération automatique de la documentation technique (JSDoc) incluant ce README.
Déploiement Continu (CD) : Déploiement automatique de l'application et de la documentation sur GitHub Pages.
🔗 Liens Utiles
Application Déployée : 👉 Voir le site
Documentation Technique : 👉 Voir la JSDoc
Rapport Codecov : 👉 Voir le Dashboard
Package NPM : 👉 Voir sur NPM
🛠️ Pré-requis
Pour faire tourner ce projet localement, vous avez besoin de :
- Node.js (version 20.x ou supérieure recommandée)
- npm
📦 Installation
Clonez le dépôt et installez les dépendances :
git clone https://github.com/julien-pradier/ynov-tdd-validator.git
cd ynov-tdd-validator
npm ci▶️ Lancer l'application
Pour démarrer le serveur de développement local :
npm startL'application sera accessible sur : 👉 http://localhost:3000
🧪 Lancer les tests
Pour exécuter la suite de tests unitaires (Jest / React Testing Library) :
npm testPour voir la couverture de code en local :
npm test -- --coverage --watchAll=false🌲 Lancer les tests E2E (Cypress)
Pour exécuter les tests de bout en bout (End-to-End) avec Cypress :
npm run cypressCela ouvrira l'interface graphique de Cypress où vous pourrez sélectionner et lancer les scénarios de test (ex: navigation.cy.js).
📚 Générer la documentation
Pour générer la JSDoc localement (dans le dossier public/docs) :
npm run docs📡 Stratégie de Mocking
Dans ce projet, les appels réseaux (via Axios) sont isolés dans le
module api.js
Tests d'intégration (Jest)
Nous utilisons :
jest.mock('axios')Cela permet de simuler les réponses de l'API et de valider le comportement du frontend face à différents scénarios :
- Succès (Code 200/201)
- Erreur Métier (Code 400 - ex: Email déjà existant)
- Crash Serveur (Code 500)
Tests E2E (Cypress)
Nous utilisons :
cy.intercept()Cette approche garantit que les tests de navigation sont stables, rapides et indépendants de l'état réel de l'API externe (JSONPlaceholder).
