Ivan Socolsky
9 years ago
2 changed files with 92 additions and 2 deletions
@ -0,0 +1,90 @@ |
|||
'use strict'; |
|||
|
|||
var _ = require('lodash'); |
|||
var async = require('async'); |
|||
|
|||
var chai = require('chai'); |
|||
var sinon = require('sinon'); |
|||
var should = chai.should(); |
|||
var log = require('npmlog'); |
|||
log.debug = log.verbose; |
|||
log.level = 'info'; |
|||
|
|||
var WalletService = require('../../lib/server'); |
|||
var BlockchainMonitor = require('../../lib/blockchainmonitor'); |
|||
|
|||
var TestData = require('../testdata'); |
|||
var helpers = require('./helpers'); |
|||
var storage, blockchainExplorer; |
|||
|
|||
var socket = { |
|||
handlers: {}, |
|||
}; |
|||
socket.on = function(eventName, handler) { |
|||
this.handlers[eventName] = handler; |
|||
}; |
|||
|
|||
describe('Blockchain monitor', function() { |
|||
var server, wallet; |
|||
|
|||
before(function(done) { |
|||
helpers.before(done); |
|||
}); |
|||
after(function(done) { |
|||
helpers.after(done); |
|||
}); |
|||
beforeEach(function(done) { |
|||
helpers.beforeEach(function(res) { |
|||
storage = res.storage; |
|||
blockchainExplorer = res.blockchainExplorer; |
|||
blockchainExplorer.initSocket = sinon.stub().returns(socket); |
|||
|
|||
helpers.createAndJoinWallet(2, 3, function(s, w) { |
|||
server = s; |
|||
wallet = w; |
|||
|
|||
var bcmonitor = new BlockchainMonitor(); |
|||
bcmonitor.start({ |
|||
lockOpts: {}, |
|||
messageBroker: server.messageBroker, |
|||
storage: storage, |
|||
blockchainExplorers: { |
|||
'testnet': blockchainExplorer, |
|||
'livenet': blockchainExplorer |
|||
}, |
|||
}, function(err) { |
|||
should.not.exist(err); |
|||
done(); |
|||
}); |
|||
}); |
|||
}); |
|||
}); |
|||
|
|||
it('should notify copayers of incoming txs', function(done) { |
|||
server.createAddress({}, function(err, address) { |
|||
should.not.exist(err); |
|||
|
|||
var incoming = { |
|||
txid: '123', |
|||
vout: [{}], |
|||
}; |
|||
incoming.vout[0][address.address] = 1500; |
|||
socket.handlers['tx'](incoming); |
|||
|
|||
setTimeout(function() { |
|||
server.getNotifications({}, function(err, notifications) { |
|||
should.not.exist(err); |
|||
var notification = _.find(notifications, { |
|||
type: 'NewIncomingTx' |
|||
}); |
|||
should.exist(notification); |
|||
notification.walletId.should.equal(wallet.id); |
|||
notification.data.txid.should.equal('123'); |
|||
notification.data.address.should.equal(address.address); |
|||
notification.data.amount.should.equal(1500); |
|||
done(); |
|||
}); |
|||
}, 100); |
|||
}); |
|||
}); |
|||
}); |
Loading…
Reference in new issue