test: increase test coverage for bitcoind
adds tests for subscribing with addresses
This commit is contained in:
parent
584dd2cb98
commit
202971ec0c
@ -1,5 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
/* jshint sub: true */
|
||||||
|
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var EventEmitter = require('events').EventEmitter;
|
var EventEmitter = require('events').EventEmitter;
|
||||||
var should = require('chai').should();
|
var should = require('chai').should();
|
||||||
@ -190,6 +192,115 @@ describe('Bitcoin Service', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#subscribeAddress', function() {
|
||||||
|
it('will not an invalid address', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter = new EventEmitter();
|
||||||
|
bitcoind.subscribeAddress(emitter, ['invalidaddress']);
|
||||||
|
should.not.exist(bitcoind.subscriptions.address['invalidaddress']);
|
||||||
|
});
|
||||||
|
it('will add a valid address', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter = new EventEmitter();
|
||||||
|
bitcoind.subscribeAddress(emitter, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
});
|
||||||
|
it('will handle multiple address subscribers', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscribeAddress(emitter2, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(2);
|
||||||
|
});
|
||||||
|
it('will not add the same emitter twice', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#unsubscribeAddress', function() {
|
||||||
|
it('it will remove a subscription', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscribeAddress(emitter2, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
should.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(2);
|
||||||
|
bitcoind.unsubscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1);
|
||||||
|
});
|
||||||
|
it('will unsubscribe subscriptions for an emitter', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2];
|
||||||
|
bitcoind.unsubscribeAddress(emitter1);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1);
|
||||||
|
});
|
||||||
|
it('will NOT unsubscribe subscription with missing address', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2];
|
||||||
|
bitcoind.unsubscribeAddress(emitter1, ['1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo']);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(2);
|
||||||
|
});
|
||||||
|
it('will NOT unsubscribe subscription with missing emitter', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter2];
|
||||||
|
bitcoind.unsubscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'][0].should.equal(emitter2);
|
||||||
|
});
|
||||||
|
it('will remove empty addresses', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2];
|
||||||
|
bitcoind.unsubscribeAddress(emitter1, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
bitcoind.unsubscribeAddress(emitter2, ['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
should.not.exist(bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br']);
|
||||||
|
});
|
||||||
|
it('will unsubscribe emitter for all addresses', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2];
|
||||||
|
bitcoind.subscriptions.address['1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo'] = [emitter1, emitter2];
|
||||||
|
sinon.spy(bitcoind, 'unsubscribeAddressAll');
|
||||||
|
bitcoind.unsubscribeAddress(emitter1);
|
||||||
|
bitcoind.unsubscribeAddressAll.callCount.should.equal(1);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1);
|
||||||
|
bitcoind.subscriptions.address['1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo'].length.should.equal(1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#unsubscribeAddressAll', function() {
|
||||||
|
it('will unsubscribe emitter for all addresses', function() {
|
||||||
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
var emitter1 = new EventEmitter();
|
||||||
|
var emitter2 = new EventEmitter();
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'] = [emitter1, emitter2];
|
||||||
|
bitcoind.subscriptions.address['1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo'] = [emitter1, emitter2];
|
||||||
|
bitcoind.subscriptions.address['mgY65WSfEmsyYaYPQaXhmXMeBhwp4EcsQW'] = [emitter2];
|
||||||
|
bitcoind.subscriptions.address['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou'] = [emitter1];
|
||||||
|
bitcoind.unsubscribeAddress(emitter1);
|
||||||
|
bitcoind.subscriptions.address['2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br'].length.should.equal(1);
|
||||||
|
bitcoind.subscriptions.address['1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo'].length.should.equal(1);
|
||||||
|
bitcoind.subscriptions.address['mgY65WSfEmsyYaYPQaXhmXMeBhwp4EcsQW'].length.should.equal(1);
|
||||||
|
should.not.exist(bitcoind.subscriptions.address['3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou']);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#_getDefaultConfig', function() {
|
describe('#_getDefaultConfig', function() {
|
||||||
it('will generate config file from defaults', function() {
|
it('will generate config file from defaults', function() {
|
||||||
var bitcoind = new BitcoinService(baseConfig);
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user