Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Dúvida no Ex. 5 da Aula 7 - Testes de integração

Quando fiz a primeira vez deu tudo certo, mas formatei meu pc e agora depois de instalar tudo e rodar o teste de novo apareceu o seguinte erro:

1) #ProdutosController #listagem json: Error: expected "Content-Type" matching /json/, got "text/html; charset=utf-8"

Como se não retornasse um json, já vi as aulas de novo, fiz passo a passo do teste de novo, no início até deu certo, mas depois de usar o supertest o erro voltou e não consegui corrigir.

7 respostas

Oi Felipe,

Pode colocar o código do teste aqui?

var express = require('../config/express')();
var request = require('supertest')(express);

describe('#ProdutosController', function(){
  it('#listagem json', function(done){
      request.get('/produtos')
      .set('Accept','application/json')
      .expect('Content-Type',/json/)
      .expect(200, done);
  });

  it('#cadastro de novo produto com dados invalidos', function(done) {
      request.post('/produtos')
      .send({titulo:"", descricao: "novo livro"})
      .expect(400, done);
  });

  it('#cadastro de novo produto com dados validos', function(done) {
      request.post('/produtos')
      .send({titulo:"titulo", descricao: "novo livro", preco: "20.50"})
      .expect(200, done);
  });
});

Oi Felipe, ainda não consegui descobrir o problema. O seu projeto está no github? Caso não esteja, pode subir e postar o link aqui?

Pois é, também não encontrei. Taí o link https://github.com/felipecesr/nodejs-alura.git

Oi Felipe, baixei seu código e rodei. O teste da listagem passou, mas pelo menos deu para pegar outro problema. O seu último teste precisa esperar um 302(redirect) em invés de um 200. Outro detalhe, no seu if de validação de erros, coloca um return no fim do if. Caso contrário ele vai continuar a execução da função e vai tentar dar o redirect, mesmo após você ter enviado o status 400.

Obrigado Alberto, vou tentar ver porque não funciona aqui.

solução!

Eu estava abrindo o console dentro da pasta test e executando o comando "mocha produtos.js", quando executei da raiz do projeto "mocha test/produtos.js" passou.

O problema foi só na execução do teste, desculpa aí te fazer olhar todo meu código Alberto.