Skip to content

Commit

Permalink
test: unit tests for bitcoind address details
Browse files Browse the repository at this point in the history
  • Loading branch information
braydonf committed May 24, 2016
1 parent 86b1acd commit 0c820c5
Showing 1 changed file with 101 additions and 0 deletions.
101 changes: 101 additions & 0 deletions test/services/bitcoind.unit.js
Original file line number Diff line number Diff line change
Expand Up @@ -2445,6 +2445,15 @@ describe('Bitcoin Service', function() {
});

describe('#getAddressTxids', function() {
it('will give error from _getHeightRangeQuery', function(done) {
var bitcoind = new BitcoinService(baseConfig);
bitcoind._getHeightRangeQuery = sinon.stub().throws(new Error('test'));
bitcoind.getAddressTxids('address', {}, function(err) {
err.should.be.instanceOf(Error);
err.message.should.equal('test');
done();
});
});
it('will give rpc error from mempool query', function() {
var bitcoind = new BitcoinService(baseConfig);
bitcoind.nodes.push({
Expand Down Expand Up @@ -2686,6 +2695,98 @@ describe('Bitcoin Service', function() {
});
});

describe('#_getAddressDetailsForInput', function() {
it('will return if missing an address', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {};
bitcoind._getAddressDetailsForInput({}, 0, result, []);
should.not.exist(result.addresses);
should.not.exist(result.satoshis);
});
it('will only add address if it matches', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {};
bitcoind._getAddressDetailsForInput({
address: 'address1'
}, 0, result, ['address2']);
should.not.exist(result.addresses);
should.not.exist(result.satoshis);
});
it('will instantiate if outputIndexes not defined', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {
addresses: {}
};
bitcoind._getAddressDetailsForInput({
address: 'address1'
}, 0, result, ['address1']);
should.exist(result.addresses);
result.addresses['address1'].inputIndexes.should.deep.equal([0]);
result.addresses['address1'].outputIndexes.should.deep.equal([]);
});
it('will push to inputIndexes', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {
addresses: {
'address1': {
inputIndexes: [1]
}
}
};
bitcoind._getAddressDetailsForInput({
address: 'address1'
}, 2, result, ['address1']);
should.exist(result.addresses);
result.addresses['address1'].inputIndexes.should.deep.equal([1, 2]);
});
});

describe('#_getAddressDetailsForOutput', function() {
it('will return if missing an address', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {};
bitcoind._getAddressDetailsForOutput({}, 0, result, []);
should.not.exist(result.addresses);
should.not.exist(result.satoshis);
});
it('will only add address if it matches', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {};
bitcoind._getAddressDetailsForOutput({
address: 'address1'
}, 0, result, ['address2']);
should.not.exist(result.addresses);
should.not.exist(result.satoshis);
});
it('will instantiate if outputIndexes not defined', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {
addresses: {}
};
bitcoind._getAddressDetailsForOutput({
address: 'address1'
}, 0, result, ['address1']);
should.exist(result.addresses);
result.addresses['address1'].inputIndexes.should.deep.equal([]);
result.addresses['address1'].outputIndexes.should.deep.equal([0]);
});
it('will push if outputIndexes defined', function() {
var bitcoind = new BitcoinService(baseConfig);
var result = {
addresses: {
'address1': {
outputIndexes: [0]
}
}
};
bitcoind._getAddressDetailsForOutput({
address: 'address1'
}, 1, result, ['address1']);
should.exist(result.addresses);
result.addresses['address1'].outputIndexes.should.deep.equal([0, 1]);
});
});

describe('#_getAddressDetailsForTransaction', function() {
it('will calculate details for the transaction', function(done) {
/* jshint sub:true */
Expand Down

0 comments on commit 0c820c5

Please sign in to comment.