Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Teste não funciona 100%

No código abaixo:

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

O teste passa para qualquer situação, não respeitando o se teve erro (400), se foi incluído com sucesso (302) e etc.

Será quem tem algum erro na configuração ou no código acima?

Obrigado.

1 resposta
solução!

Inclui trecho de código que encontrei em https://github.com/visionmedia/supertest/issues/283 e funcionou.

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)
        .expect(function(res) {
            if (true) return console.log('Status esperado: 200');
            })
            .end(function(err, res){
                done(err);
            });
    });

    it('#cadastro de novo produto com dados invalidos',function(done){
        request.post('/produtos')
        .send({titulo:"",descricao:"novo livro"})
        .expect(400)
        .expect(function(res) {
            if (true) return console.log('Status esperado: 400');
            })
            .end(function(err, res){
                done(err);
            });
    });

    it('#cadastro de novo produto com dados validos',function(done){
        request.post('/produtos')
        .send({titulo:"titulo",descricao:"novo livro",preco:20.50})
        .expect(302)
        .expect(function(res) {
            if (true) return console.log('Status esperado: 302');
            })
            .end(function(err, res){
                done(err);
            });
    });

});