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

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

Bom, nesse exercício, não consegui executar o teste, ele estava acusando 404 not found. Então notei que não havia referencia das rotas para o express. Quando invoquei ele no arquivo, funcionou :

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

Já que as rotas eram referenciadas no app.js

Estou certo? Ou devo referencias as rotas no config.js?

5 respostas
solução!

Oi Lucas,

Estou em dúvida em relação ao arquivo config.js. Se ele realmente representa o arquivo de configuração do express, as rotas deveriam ter sido carregadas, por conta do autoload que é utilizado lá dentro. Dessa maneira vc não precisaria importar os routes não... Pode mostrar o seu arquivo config.js?

Estou com um problema similar ao do lucas...

segue o meu arquivo config:

var express = require('express');
var load = require('express-load');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');

//Exportando o modulo responsavel em configurar o express
module.exports = function (){
    var app = express();

    app.set('view engine', 'ejs');
    app.set('views','./app/views');

    app.use(bodyParser.urlencoded({extended:true})); //middleware responsavel no html response
    app.use(bodyParser.json()); //middleware responsavel em parsear o JSON
    app.use(expressValidator()); //middleware responsavel pela validação

    load('routes',{cwd : 'app'})
        .then('db')
        .into(app);

    return app;
};

e o meu arquivo de teste:

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

describe('ProdutosController', function () {

    it('#Verificando se listagem retorna tipo JSON', function (done) { //necessario passar para que o MOCHA saiba que a função assíncrona tenha acabado de fato
        request.get('/produtos')
          //  .set('Accept', 'application/json') // informando que no header da requisiçao tem que ser do tipo JSON
          //  .expect('Content-Type', /json/)   //falando que a resposta esperada no contet-type tem que ter a palavara json
            .expect(200, done); //informando que espera um statusCode 200 e que pode finalizar o teste

    });

});

Oi Luiz, é que o problema dele ele resolveu passando o argumento do express.. Qual é o erro que acontece no seu? Tem link para seu projeto no github?

Oi Alberto, obrigado pelo rápido retorno, depois que postei que notei que já haviam fechado esse topico...

Então, abri outro tópico sobre esse assunto: https://cursos.alura.com.br/forum/topico-duvida-no-ex-5-da-aula-7-testes-de-integracao-rotas-nao-estao-sendo-carregadas-26913

Vou atualizar a pergunta com caminho pro git lá também: https://github.com/MrMicc/aluraNode