Exercício – Instalar pacotes

Concluído

A equipe da Tailwind Traders está planejando desenvolver vários aplicativos Node.js. Ela encontrou o Jest, uma estrutura de teste de configuração zero popular, no registro npm. Ela quer que você instale o Jest, escreva alguns testes e execute-os para avaliar sua eficácia.

Adicionar um pacote de teste com a CLI do npm

Você tem algum código que extrai um endereço de uma cadeia de caracteres. Seu trabalho é simples: instale a estrutura de teste, escreva alguns testes e execute-os.

  1. Em uma nova janela do terminal (Ctrl + Shift + `), alterne para a pasta que tem os arquivos deste exercício:

    cd node-dependencies/5-exercise-dependency
    
  2. Exiba o conteúdo da pasta:

    ls -R
    

    Nesta pasta, você deverá ver dois arquivos JavaScript:

    -| address-parser.js
    -| package.json
    
  3. Abra o arquivo address-parser.js. Ele deverá se parecer com este arquivo:

     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;
     }
    

    A função toma uma cadeia de caracteres e analisa informações sobre qual pedido o cliente fez, onde ele deve ser entregue e como será pago. Vamos adicionar o Jest e escrever alguns testes para a função.

  4. Feche o arquivo address-parser.js.

  5. Para instalar o pacote Jest, execute este comando:

    npm install jest --save-dev
    
  6. Depois que o pacote Jest for instalado, abra o arquivo package.json e localize a seção devDependencies. Você deve ver uma entrada semelhante a este exemplo em que o valor da propriedade jest é um número de versão semântico:

    "devDependencies": {
       "jest": "<number.number.number>"
     }
    
  7. No arquivo package.json, localize a seção scripts. Substitua a entrada de ação test existente pelo seguinte código:

    "test": "jest"
    
  8. Salve suas alterações e feche o arquivo package.json.

  9. No terminal, crie uma nova subpasta chamada __tests__.

    mkdir __tests__
    

    Observação

    Certifique-se de usar sublinhados duplos ao criar a pasta __tests__. A pasta tests é uma convenção de nomenclatura usada pelo Jest, a estrutura de testes. O Jest reconhece automaticamente todos os arquivos em uma pasta tests (ou arquivos com .test. ou .spec. em seus nomes) como arquivos de teste e os inclui ao executar testes. Essa convenção ajuda a manter os arquivos de teste organizados e facilmente identificáveis no projeto.

  10. Na pasta __tests__, crie um arquivo chamado address-parser.spec.js e adicione o seguinte conteúdo ao arquivo:

     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",
             });
         });
     });
    

    O script de teste:

    • Verifica a capacidade de análise da função address-parser.js.
    • Garante que a função possa analisar corretamente as informações necessárias.
  11. Salve suas alterações e feche o arquivo.

  12. A estrutura do projeto agora deve ser semelhante a este exemplo:

    -| package.json
    -| address-parser.js
    -| __tests__/
    ---| address-parser.js
    
  13. Para executar os testes, insira este comando no terminal:

    npm run test
    

    Você verá a seguinte saída:

      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.
    

    Sucesso! Seu teste foi aprovado e você adicionou a funcionalidade de teste instalando uma dependência.

Parabéns. Você instalou o Jest com sucesso como uma dependência, escreveu testes para o código do aplicativo e executou os testes. O Jest parece cumprir sua promessa e a Tailwind Traders provavelmente ficará feliz com essa avaliação.