Olá!
Vi que outras pessoas estão/estavam com o mesmo problema que eu. Mas não consegui aplicar na solução do meu. Sou usuário Windows e no cmd uso o seguinte código:
set "NODE_ENV=test"&&node node_modules/mocha/bin/mocha
ou o script abaixo no package.json + npm test no cmd:
"scripts": {
"test": "set \"NODE_ENV=test\"&&node node_modules/mocha/bin/mocha"
}
Ambos funcionam. Aí obtenho a mensagem de sucesso, porém grava no banco de desenvolvimento, ao invés de gravar no de teste. Segue meu arquivo app/routes/produtos.js:
module.exports = function(app) {
let listaProdutos = function(req, res, next){
let connection = app.infra.connectionFactory();
let produtosDAO = new app.infra.ProdutosDAO(connection);
produtosDAO.lista(function(err, results){
if(err){
return next(err);
};
res.format({
html: function() {
res.render('produtos/lista', {lista: results});
},
json: function() {
res.json(results);
}
});
});
connection.end();
};
app.get('/produtos', listaProdutos);
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);
let validaTitulo = req.assert('titulo', 'Título obrigatório').notEmpty();
let validaPreco = req.assert('preco', 'Formato Inválido').isFloat();
let erros = req.validationErrors();
if(erros) {
res.format({
html: function() {
res.status(400).render('produtos/form', {errosValidacao: erros, produto: produto});
},
json: function() {
res.status(400).json(erros);
}
})
return;
}
let connection = app.infra.connectionFactory();
let produtosDAO = new app.infra.ProdutosDAO(connection);
produtosDAO.salva(produto, function(err, results){
console.log(err);
res.redirect('/produtos');
});
});
};
Até a primeira parte da Aula, onde colocamos o console.log(err) pra ele mostrar o "unknown database" consegui acompanhar o vídeo. Depois não consegui mais reproduzir o vídeo. Inclusive na parte onde ele retira o
.expect('Content-Type', /json/)
do arquivo de testes.
Alguém consegue me ajudar? To a um tempo preso nesse problema.