Boa tarde. Estou com uma dúvida neste exercício. Eu segui o passo-a-passo dele até aqui e quando faço o teste de produtos válidos ele envia uma mensagem de ok e cadastra o produto no banco de dados. Porém, na hora do teste de produtos inválidos, aparece a mensagem:
1) #ProdutosController #cadastro de novo produto com dados invalidos:
     Error: expected 400 "Bad Request", got 200 "OK"
      at Test._assertStatus (node_modules/supertest/lib/test.js:266:12)
      at Test._assertFunction (node_modules/supertest/lib/test.js:281:11)
      at Test.assert (node_modules/supertest/lib/test.js:171:18)
      at Server.assert (node_modules/supertest/lib/test.js:131:12)
      at emitCloseNT (net.js:1537:8)No entanto, o produto inválido não é cadastrado no banco, o que é o correto. A mensagem que ele deveria retornar neste caso não seria o erro 400? No entanto, a impressão que eu tenho é que ele retorna 200.
Este é o meu código de cadastro de produtos: produtos.js (app routes)
module. exports = function(app) {
    app.get("/produtos", function(req, res) {
        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.lista(function(erros,resultados){
            //res.render('produtos/lista', {lista:resultados});
            res.format({
                html: function(){
                    res.render('produtos/lista',{lista:resultados});
                },
                json: function(){
                    res.json(resultados)
                }
            });
        });
        connection.end();
    });
    app.get("/produtos/form", function(req, res){
        res.render('produtos/form', 
            {errosValidacao:{}, produto: {}});
    });
    app.post("/produtos", function(req, res) {
        var produto = req.body;
        console.log(produto);
        req.assert('titulo','Titulo é obrigatório').notEmpty();
        req.assert('descricao','Descrição é obrigatória').notEmpty();
        req.assert('preco','Formato inválido').isFloat()
        var erros = req.validationErrors();
        if(erros){
            //res.render('produtos/form', {errosValidacao:erros, produto:produto});
            res.format({
                html: function(){
                res.render('produtos/form',{errosValidacao:erros,produto:produto});
            },
                json: function(){
                    res.status(400).json(erros);
                }
            });
            return;
        }
        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.salva(produto,function(erros,resultados){
            //res.render('produtos/lista');
            console.log(erros)
            res.redirect('/produtos');
        });
        connection.end();
    });
}produtos.js (test)
var express = require('../config/express')();
var request = require('supertest')(express);
describe('#ProdutosController', function(){
    it('listagem json', function(done){
        //console.log("Teste de verificação de listagem de json");
        /*var configuracoes = {
            hostname: 'localhost',
            port:3000,
            path: '/produtos',
            headers: {
                'Accept':'application/json'
            }
        };
        http.get(configuracoes,function(res){
            assert.equal(res.statusCode, 200);
            assert.equal(res.headers['content-type'],'application/json; charset=utf-8');
            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:200})
        .expect(302,done);
    });
}); 
             
            