Exercice – Installer des packages

Effectué

L’équipe Tailwind Traders envisage de développer plusieurs applications Node.js. Elle a trouvé Jest, une infrastructure de test sans configuration populaire, dans le registre npm. Elle veut que vous installiez Jest, que vous écriviez quelques tests et que vous les exécutiez pour évaluer son efficacité.

Ajouter un package de test avec l’interface CLI npm

Vous disposez d’un code qui extrait une adresse d’une chaîne. Votre travail est simple : installez l’infrastructure de test, écrivez quelques tests et exécutez-les.

  1. Dans votre fenêtre de terminal (Ctrl + Shift + `, accédez au dossier qui contient les fichiers clonés pour cet exercice :

    cd node-dependencies/5-exercise-dependency
    
  2. Affichez le contenu du dossier :

    ls -R
    

    Dans ce dossier, vous devez voir deux fichiers JavaScript :

    -| address-parser.js
    -| package.json
    
  3. Ouvrez le fichier address-parser.js. Il doit se présenter comme suit :

     exports.addressParser = function parseOrder(order) {
       const match = order.match(/order:\s(?<order>\w+\s\w+).*address:\s(?<address>\w+\s\w+\s\w+).*payment info:\s(?<payment>\w+)/)
       return match.groups;
     }
    

    Cette fonction prend une chaîne et extrait des informations sur les commandes d’un client, leur lieu de livraison et leur mode de règlement. Nous allons ajouter Jest et écrire des tests pour la fonction.

  4. Fermez le fichier address-parser.js.

  5. Installez le package Jest en exécutant cette commande :

    npm install jest --save-dev
    
  6. Une fois le package Jest installé, ouvrez le fichier package.json et recherchez la section devDependencies. Vous devriez voir une entrée qui ressemble à cet exemple, où la valeur de la propriété jest est un numéro de version sémantique :

    "devDependencies": {
       "jest": "<number.number.number>"
     }
    
  7. Dans le fichier package.json, recherchez la section scripts. Remplacez l’entrée de l’action test existante par le code suivant :

    "test": "jest"
    
  8. Enregistrez vos modifications et fermez le fichier package.json.

  9. Dans le terminal, créez un sous-dossier nommé __tests__.

    mkdir __tests__
    

    Remarque

    Veillez à utiliser des traits de soulignement doubles quand vous créez le dossier __tests__. Le dossier de tests est une convention d’affectation de noms utilisée par Jest, l’infrastructure de test. Jest reconnaît automatiquement tous les fichiers d’un dossier de tests (ou des fichiers avec .test. ou .spec. dans leurs noms) en tant que fichiers de test et les inclut lors de l’exécution de tests. Cette convention permet de conserver les fichiers de test organisés et facilement identifiables dans votre projet.

  10. Dans le dossier __tests__, créez un fichier nommé address-parser.js, puis ajoutez le contenu suivant au fichier :

     const { addressParser } = require('../address-parser');
    
     describe('Address Parser', () => {
         test('should parse correctly', () => {
             expect(addressParser("I want to to order: 3 books to address: 112 street city here is my payment info: cardnumber")
             ).toEqual({
                 order: "3 books",
                 address: "112 street city",
                 payment: "cardnumber",
             });
         });
     });
    

    Le script de test :

    • Vérifie la capacité d’analyse de la fonction address-parser.js.
    • Garantit que la fonction peut analyser correctement les informations nécessaires.
  11. Enregistrer vos modifications et fermez le fichier.

  12. La structure de votre projet doit maintenant se présenter comme cet exemple :

    -| package.json
    -| address-parser.js
    -| __tests__/
    ---| address-parser.js
    
  13. Exécutez les tests en entrant cette commande dans le terminal :

    npm run test
    

    Vous devez obtenir la sortie suivante :

      PASS  __tests__/address-parser.js
       Address parser
         ✓ should parse correctly (2 ms)
    
     Test Suites: 1 passed, 1 total
     Tests:       1 passed, 1 total
     Snapshots:   0 total
     Time:        0.4 s
     Ran all test suites.
    

    Le résultat est correct ! Votre test a réussi, et vous avez ajouté une fonctionnalité de test en installant une dépendance.

Félicitations ! Vous avez installé Jest comme dépendance, écrit des tests pour le code de l’application et exécuté les tests. Jest semble tenir ses promesses : Tailwind Traders devrait être satisfaite de cette évaluation.