Matias Alejo Garcia
8 years ago
committed by
GitHub
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