Drop MongoDB database before running Mocha test Drop MongoDB database before running Mocha test mongoose mongoose

Drop MongoDB database before running Mocha test


solved by connect in another define.. not sure if ideal.

describe('Init', function() {    before(function (done) {           mongoose.connect('mongodb://localhost/db-test', function(){            mongoose.connection.db.dropDatabase(function(){                done()            })            })    })    describe('Database', function() {


I implemented it a bit different.

  1. I removed all documents in the "before" hook - found it a lot faster than dropDatabase().
  2. I used Promise.all() to make sure all documents were removed before exiting the hook.

    beforeEach(function (done) {    function clearDB() {        var promises = [            Model1.remove().exec(),            Model2.remove().exec(),            Model3.remove().exec()        ];        Promise.all(promises)            .then(function () {                done();            })    }    if (mongoose.connection.readyState === 0) {        mongoose.connect(config.dbUrl, function (err) {            if (err) {                throw err;            }            return clearDB();        });    } else {        return clearDB();    }});