module.exports = DatabaseCleaner = function(type) { var type = type; var cleaner = {}; cleaner['mongodb'] = function(db, callback) { db.collections( function (skip, collections) { var count = collections.length; collections.forEach(function (collection) { if (collection.collectionName != 'system.indexes') { collection.remove({}, function () { count--; if (count <= 0 && callback) { callback.apply(); } }); } else { count--; if (count <= 0 && callback) { callback.apply(); } } }); }); }; cleaner['redis'] = function(db, callback) { db.flushdb(function(err, results) { callback.apply(); }); }; cleaner['couchdb'] = function(db, callback) { /** ** @link https://github.com/felixge/node-couchdb **/ var client = db.client; var dbName = db.name; db.remove(); var newDb = client.db(dbName); db.create(function(err, result){ if(result){ this.db = newDb; //callback.apply(this, arguments); callback(err, result); }; }) }; this.clean = function (db, callback) { cleaner[type](db, callback); }; };