This commit is contained in:
Ivan Socolsky 2015-04-20 21:11:10 -03:00
parent 498392e72c
commit d7ea3e48bb
3 changed files with 61 additions and 61 deletions

View File

@ -19,13 +19,15 @@ var collections = {
NOTIFICATIONS: 'notifications', NOTIFICATIONS: 'notifications',
}; };
var Storage = function() {}; var Storage = function(opts) {
opts = opts || {};
this.db = opts.db;
};
Storage.prototype.connect = function(opts, cb) { Storage.prototype.connect = function(opts, cb) {
var self = this; var self = this;
opts = opts || {}; opts = opts || {};
this.db = opts.db;
if (this.db) return cb(); if (this.db) return cb();

View File

@ -211,53 +211,51 @@ helpers.createAddresses = function(server, wallet, main, change, cb) {
var db, storage, blockchainExplorer; var db, storage, blockchainExplorer;
function openDb(cb) { function openDb(cb) {
function dropDb(cb) { var url = 'mongodb://localhost:27017/bws';
db.dropDatabase(function(err) { mongodb.MongoClient.connect(url, function(err, _db) {
should.not.exist(err); should.not.exist(err);
return cb(); db = _db;
}); return cb();
}; });
if (db) { };
return dropDb(cb);
} else { function resetDb(cb) {
var url = 'mongodb://localhost:27017/bws'; if (!db) return cb();
mongodb.MongoClient.connect(url, function(err, _db) { db.dropDatabase(function(err) {
should.not.exist(err); should.not.exist(err);
db = _db; return cb();
return dropDb(cb); });
});
}
}; };
function closeDb(cb) { function closeDb(cb) {
if (db) { if (!db) return cb();
db.close(true, function(err) { db.close(true, function(err) {
should.not.exist(err); should.not.exist(err);
db = null; db = null;
return cb();
});
} else {
return cb(); return cb();
} });
}; };
describe('Wallet service', function() {
beforeEach(function(done) {
openDb(function() {
storage = new Storage();
storage.connect({
db: db
}, function(err) {
should.not.exist(err);
blockchainExplorer = sinon.stub();
WalletService.initialize({ describe('Wallet service', function() {
storage: storage, before(function(done) {
blockchainExplorer: blockchainExplorer, openDb(function() {
}); storage = new Storage({
helpers.offset = 0; db: db
done();
}); });
done();
});
});
beforeEach(function(done) {
resetDb(function() {
blockchainExplorer = sinon.stub();
WalletService.initialize({
storage: storage,
blockchainExplorer: blockchainExplorer,
});
helpers.offset = 0;
done();
}); });
}); });
after(function(done) { after(function(done) {
@ -3052,27 +3050,30 @@ describe('Wallet service', function() {
describe('Blockchain monitor', function() { describe('Blockchain monitor', function() {
var addressSubscriber; var addressSubscriber;
before(function(done) {
openDb(function() {
storage = new Storage({
db: db
});
done();
});
});
beforeEach(function(done) { beforeEach(function(done) {
addressSubscriber = sinon.stub(); addressSubscriber = sinon.stub();
addressSubscriber.subscribe = sinon.stub(); addressSubscriber.subscribe = sinon.stub();
sinon.stub(BlockchainMonitor.prototype, '_getAddressSubscriber').onFirstCall().returns(addressSubscriber); sinon.stub(BlockchainMonitor.prototype, '_getAddressSubscriber').onFirstCall().returns(addressSubscriber);
openDb(function() { resetDb(function() {
storage = new Storage(); blockchainExplorer = sinon.stub();
storage.connect({
db: db
}, function(err) {
should.not.exist(err);
blockchainExplorer = sinon.stub();
WalletService.initialize({ WalletService.initialize({
storage: storage, storage: storage,
blockchainExplorer: blockchainExplorer, blockchainExplorer: blockchainExplorer,
});
helpers.offset = 0;
done();
}); });
helpers.offset = 0;
done();
}); });
}); });
afterEach(function() { afterEach(function() {

View File

@ -12,7 +12,7 @@ var Model = require('../lib/model');
function initDb(cb) { function initDb(cb) {
var url = 'mongodb://localhost:27017/bws'; var url = 'mongodb://localhost:27017';
mongodb.MongoClient.connect(url, function(err, db) { mongodb.MongoClient.connect(url, function(err, db) {
should.not.exist(err); should.not.exist(err);
db.dropDatabase(function(err) { db.dropDatabase(function(err) {
@ -27,13 +27,10 @@ describe('Storage', function() {
beforeEach(function(done) { beforeEach(function(done) {
initDb(function(err, db) { initDb(function(err, db) {
should.not.exist(err); should.not.exist(err);
storage = new Storage(); storage = new Storage({
storage.connect({
db: db db: db
}, function(err) {
should.not.exist(err);
done();
}); });
done();
}); });
}); });
describe('Store & fetch wallet', function() { describe('Store & fetch wallet', function() {