Skip to main content

TP Node.js BDD - 02

Contexte

Ce TP est un bonus : il demande plus d'autonomie.
À vous de gérer les informations à retourner ainsi que la logique métier.

Essayez d'intégrer les fonctionnalités demandées de manière autonome en vous aidant de ressources sur Internet.

Si vous utilisez de l'IA (ChatGPT par exemple), vous devez :

  • Comprendre le code généré
  • L'adapter à votre projet
  • Être capable de l'expliquer

Fonctionnalités / Améliorations

Pour aller plus loin, vous pouvez ajouter :

  • Des logs à chaque retour métier
  • Des tests unitaires et/ou fonctionnels pour :
    • Faire du test de non-régression
    • Préparer la couverture de code
  • Un système d'authentification JWT

Logs

Comme dans la démo, utilisez le package winston pour gérer les logs.

Tests unitaires

Comme dans la démo, utilisez le package jest pour mettre en place les tests.

Pour les tests, il est recommandé de créer une version Mock du DAO qui ne dépend pas d'une base de données.

Exemple :

  • DAOArticleMock (données stockées en mémoire JavaScript)

Cette implémentation peut servir de DAO "fallback" par défaut si aucun fichier .env ou configuration spécifique n'est défini (notamment dans le cadre des tests).

Cela permet :

  • De tester la logique métier sans dépendance externe
  • D'éviter les connexions à une base réelle
  • De faciliter les tests de non-régression

JWT

Mettre en place :

  • Une route de connexion: Retourne un token JWT si le couple email / mot de passe est valide

  • Un middleware d'authentification: Vérifie que le token envoyé dans le header Authorization est valide

  • Ce middleware devra pouvoir être injecté dans certaines routes protégées comme :

    • Créer un article
    • Modifier un article
    • Supprimer un article