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

node-database-cleaner

Não estou conseguindo implementar o node-database-cleaner, meu código está assim:

var express = require('../config/express')();
var request = require('supertest')(express);
var DatabaseCleaner = require('database-cleaner');

describe('#ProdutosController', function(){

  beforeEach(function(done){
    var databaseCleaner = new DatabaseCleaner('mysql');
    databaseCleaner.clean('alura_casa-do-codigo_test', function(){
      done();
    });
  });

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

  it('#listagem html', function(done){
    request.get("/produtos")
      .set('Accept', 'text/html')
      .expect('Content-Type',/html/)
      .expect(200,done);
  });

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

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

e o seguintes erro:

[..]
  1) #ProdutosController "before each" hook:
     TypeError: db.query is not a function
      at Object.cleaner.mysql (node_modules/database-cleaner/lib/database-cleaner.js:50:8)
      at clean (node_modules/database-cleaner/lib/database-cleaner.js:158:18)
      at Context.<anonymous> (test/produtos.js:9:21)
[..]

Como faço para funcionar?

1 resposta
solução!

Consegui, o código ficou assim:

  beforeEach(function(done){
    var databaseCleaner = new DatabaseCleaner('mysql');
    databaseCleaner.clean(express.infra.connectionFactory(), function() {
      done();
    });
  });