From 8fd405eedf85b01b3be6f9057808c049d76dfce7 Mon Sep 17 00:00:00 2001 From: Braydon Fuller Date: Mon, 18 Apr 2016 10:48:32 -0400 Subject: [PATCH] test: getBlockHeader unit tests --- test/services/bitcoind.unit.js | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/test/services/bitcoind.unit.js b/test/services/bitcoind.unit.js index 85573427..9945ac95 100644 --- a/test/services/bitcoind.unit.js +++ b/test/services/bitcoind.unit.js @@ -1926,6 +1926,73 @@ describe('Bitcoin Service', function() { }); describe('#getBlockHeader', function() { + var blockhash = '00000000050a6d07f583beba2d803296eb1e9d4980c4a20f206c584e89a4f02b'; + it('it will give rpc error from client getblockheader', function() { + var bitcoind = new BitcoinService(baseConfig); + var getBlockHeader = sinon.stub().callsArgWith(1, {code: -1, message: 'Test error'}); + bitcoind.nodes.push({ + client: { + getBlockHeader: getBlockHeader + } + }); + bitcoind.getBlockHeader(blockhash, function(err) { + err.should.be.instanceof(Error); + }); + }); + it('it will give rpc error from client getblockhash', function() { + var bitcoind = new BitcoinService(baseConfig); + var getBlockHeader = sinon.stub(); + var getBlockHash = sinon.stub().callsArgWith(1, {code: -1, message: 'Test error'}); + bitcoind.nodes.push({ + client: { + getBlockHeader: getBlockHeader, + getBlockHash: getBlockHash + } + }); + bitcoind.getBlockHeader(0, function(err) { + err.should.be.instanceof(Error); + }); + }); + it('will give result from client getblockheader (from height)', function() { + var bitcoind = new BitcoinService(baseConfig); + var result = {}; + var getBlockHeader = sinon.stub().callsArgWith(1, null, { + result: result + }); + var getBlockHash = sinon.stub().callsArgWith(1, null, { + result: blockhash + }); + bitcoind.nodes.push({ + client: { + getBlockHeader: getBlockHeader, + getBlockHash: getBlockHash + } + }); + bitcoind.getBlockHeader(0, function(err, blockHeader) { + should.not.exist(err); + getBlockHeader.args[0][0].should.equal(blockhash); + blockHeader.should.equal(result); + }); + }); + it('will give result from client getblockheader (from hash)', function() { + var bitcoind = new BitcoinService(baseConfig); + var result = {}; + var getBlockHeader = sinon.stub().callsArgWith(1, null, { + result: result + }); + var getBlockHash = sinon.stub(); + bitcoind.nodes.push({ + client: { + getBlockHeader: getBlockHeader, + getBlockHash: getBlockHash + } + }); + bitcoind.getBlockHeader(blockhash, function(err, blockHeader) { + should.not.exist(err); + getBlockHash.callCount.should.equal(0); + blockHeader.should.equal(result); + }); + }); }); describe('#estimateFee', function() {