1
resposta

Possível problema/erro no último teste da instrutora

Esse ultimo teste de capturar erro sempre vai passar da maneira como esta escrito:

it("deve lançar um erro na falta de arquivo", () => {
    async function capturaErro() {
        await getFile('/home/juliana/Documents/alura/lib-markdown/text/arquivos/')
        expect(capturaErro).toThrowError(/não há arquivo no caminho/);
    }
});

O expect está dentro da função capturaErro(). Então independente do que for passado na função pegaArquivo() ou no ...toThrowError() o teste vai sempre passar porque o expect não está sendo executado. Eu testei colocar qualquer coisa e o teste passou.

Se puderem verificar pra ver se não estou enganado.

1 resposta

Oi Jean, tudo bem?

Realmente, você está certíssimo. Tem um erro nesse último teste. Ao invés de passar o expect para dentro de uma função, podemos usar outros métodos do Jest para capturar erros lançados:

  it('deve lançar um erro na falta de arquivo', async () => {
    await expect(pegaArquivo('/home/juliana/Documents/alura/lib-markdown/test/arquivos')).rejects.toThrow(/não há arquivo no caminho/)
  })

E também podemos testar o caso de sucesso:

  it('deve resolver a função com sucesso', async () => {
    await expect(pegaArquivo('/home/juliana/Documents/alura/lib-markdown/test/arquivos/texto1.md')).resolves.toEqual(arrayResult)
  })

Obrigada por apontar, vamos revisar este conteúdo.

Bons estudos! ;)