test: add unit test for getaddressunspentoutputs with mempool

This commit is contained in:
Braydon Fuller 2016-04-22 12:48:16 -04:00
parent 7f17dd4a4c
commit 5e6600162a
2 changed files with 79 additions and 0 deletions

View File

@ -840,6 +840,7 @@ Bitcoin.prototype.getAddressUnspentOutputs = function(addressArg, options, callb
}
function updateWithMempool(confirmedUtxos, mempoolDeltas) {
/* jshint maxstatements: 20 */
if (!mempoolDeltas || !mempoolDeltas.length) {
return confirmedUtxos;
}

View File

@ -1465,6 +1465,84 @@ describe('Bitcoin Service', function() {
});
});
});
it('will update with mempool results', function(done) {
var deltas = [
{
txid: 'e9dcf22807db77ac0276b03cc2d3a8b03c4837db8ac6650501ef45af1c807cce',
satoshis: -7679241,
address: '1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo',
index: 0,
timestamp: 1461342707725,
prevtxid: '46f24e0c274fc07708b781963576c4c5d5625d926dbb0a17fa865dcd9fe58ea0',
prevout: 1
},
{
txid: 'f637384e9f81f18767ea50e00bce58fc9848b6588a1130529eebba22a410155f',
satoshis: 100000,
address: '1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo',
index: 0,
timestamp: 1461342833133
},
{
txid: 'f71bccef3a8f5609c7f016154922adbfe0194a96fb17a798c24077c18d0a9345',
satoshis: 400000,
address: '1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo',
index: 1,
timestamp: 1461342954813
}
];
var bitcoind = new BitcoinService(baseConfig);
var confirmedUtxos = [
{
address: '1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo',
txid: '46f24e0c274fc07708b781963576c4c5d5625d926dbb0a17fa865dcd9fe58ea0',
outputIndex: 1,
script: '76a914f399b4b8894f1153b96fce29f05e6e116eb4c21788ac',
satoshis: 7679241,
height: 207111
}
];
var expectedUtxos = [
{
address: '1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo',
outputIndex: 1,
satoshis: 400000,
script: '76a914809dc14496f99b6deb722cf46d89d22f4beb8efd88ac',
timestamp: 1461342954813,
txid: 'f71bccef3a8f5609c7f016154922adbfe0194a96fb17a798c24077c18d0a9345'
},
{
address: '1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo',
outputIndex: 0,
satoshis: 100000,
script: '76a914809dc14496f99b6deb722cf46d89d22f4beb8efd88ac',
timestamp: 1461342833133,
txid: 'f637384e9f81f18767ea50e00bce58fc9848b6588a1130529eebba22a410155f'
}
];
bitcoind.nodes.push({
client: {
getAddressUtxos: sinon.stub().callsArgWith(1, null, {
result: confirmedUtxos
}),
getAddressMempool: sinon.stub().callsArgWith(1, null, {
result: deltas
})
}
});
var options = {
queryMempool: true
};
var address = '1Cj4UZWnGWAJH1CweTMgPLQMn26WRMfXmo';
bitcoind.getAddressUnspentOutputs(address, options, function(err, utxos) {
if (err) {
return done(err);
}
utxos.length.should.equal(2);
utxos.should.deep.equal(expectedUtxos);
done();
});
});
});
describe('#_getBalanceFromMempool', function() {