test: unit tests for bitcoind address details
This commit is contained in:
parent
86b1acd0be
commit
0c820c5987
|
@ -2445,6 +2445,15 @@ describe('Bitcoin Service', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#getAddressTxids', 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() {
|
it('will give rpc error from mempool query', function() {
|
||||||
var bitcoind = new BitcoinService(baseConfig);
|
var bitcoind = new BitcoinService(baseConfig);
|
||||||
bitcoind.nodes.push({
|
bitcoind.nodes.push({
|
||||||
|
@ -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() {
|
describe('#_getAddressDetailsForTransaction', function() {
|
||||||
it('will calculate details for the transaction', function(done) {
|
it('will calculate details for the transaction', function(done) {
|
||||||
/* jshint sub:true */
|
/* jshint sub:true */
|
||||||
|
|
Loading…
Reference in New Issue