Skip to content

printAlexis/mon-service

Repository files navigation

Mon Service

Service Node.js avec architecture modulaire (Entities, Services, Controllers)

Structure du projet

mon-service/
├── src/
│   ├── entities/        # Modèles de données (User.js)
│   ├── services/        # Logique métier (UserService.js)
│   ├── controllers/     # Gestion des routes (UserController.js)
├── tests/
│   ├── unit/           # Tests unitaires
│   ├── web/            # Tests d'intégration web
├── index.js            # Point d'entrée
├── package.json        # Dépendances
├── Dockerfile          # Configuration Docker
└── jest.config.js      # Configuration Jest

Installation

npm install

Scripts disponibles

# Lancer tous les tests avec couverture
npm test

# Lancer uniquement les tests unitaires
npm run test:unit

# Lancer uniquement les tests web/intégration
npm run test:web

# Lancer les tests en mode watch
npm run test:watch

# Démarrer le serveur
npm start

Tests

Le projet inclut :

  • Tests unitaires : Validation des entités et logique des services
  • Tests d'intégration : Vérification des endpoints API via HTTP

Couverture minimale requise : 70%

Couverture de code (Jest + Codecov)

Ce projet est en Node.js, donc l'equivalent de JaCoCo est la couverture native de Jest (Istanbul).

  • Rapport local HTML : coverage/lcov-report/index.html
  • Rapport local machine-readable : coverage/lcov.info

Generer un rapport localement

npm test

Puis ouvrir :

  • coverage/lcov-report/index.html

Vous y verrez :

  • couverture globale (statements, branches, functions, lines)
  • details par fichier
  • lignes couvertes/non couvertes

Upload automatique vers Codecov (GitHub Actions)

Le workflow .github/workflows/action.yml :

  • execute les tests avec couverture
  • upload coverage/lcov.info vers Codecov
  • fonctionne sur push et pull_request (branches master et develop)

Pour activer Codecov :

  1. Connectez le repository sur https://app.codecov.io.
  2. Si le repo est prive, ajoutez le secret GitHub CODECOV_TOKEN.
  3. Verifiez dans une PR que le statut/rapport de couverture apparait.

Bonnes pratiques

  • Viser au moins 80% en production
  • Tester les cas de succes et d'erreur
  • Ne pas gonfler artificiellement la couverture avec des tests sans valeur
  • Utiliser la couverture comme indicateur, pas comme seul objectif

Lancer les tests

# Tous les tests
npm test

# Uniquement unitaires
npm run test:unit

# Uniquement web
npm run test:web

API Endpoints

Méthode Route Description
GET / Message de bienvenue
GET /health Vérification de santé du service
GET /users Récupérer tous les utilisateurs
GET /users/:id Récupérer un utilisateur
POST /users Créer un utilisateur
PUT /users/:id Mettre à jour un utilisateur
DELETE /users/:id Supprimer un utilisateur

Exemples

# Créer un utilisateur
curl -X POST http://localhost:8080/users \
  -H "Content-Type: application/json" \
  -d '{"name":"John Doe","email":"john@example.com"}'

# Récupérer les utilisateurs
curl http://localhost:8080/users

# Vérifier la santé
curl http://localhost:8080/health

Docker

Build

docker build -t mon-service:1 .

Run

docker run -p 8080:8080 mon-service:1

CI/CD

Les tests s'exécutent automatiquement via GitHub Actions pour chaque push et PR.

Voir .github/workflows/action.yml pour la configuration complète.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors