From 63cb77fa2ae5a3e3117a5aefe23d297c5d5f393d Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Wed, 11 Mar 2015 17:48:11 -0300 Subject: [PATCH] add /addresses/:addr/transactions --- api/test/v1/addresses.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/api/test/v1/addresses.js b/api/test/v1/addresses.js index f353ceb9..d6892db6 100644 --- a/api/test/v1/addresses.js +++ b/api/test/v1/addresses.js @@ -20,14 +20,18 @@ describe('BitcoreHTTP v1 addresses routes', function() { // mocks var transactionList = Object.values(mockTransactions); - var nodeMock, app, agent; + var nodeMock, app, agent, txs_for_addr; beforeEach(function() { nodeMock = new EventEmitter(); nodeMock.getAddressInfo = function(address) { return Promise.resolve(mockAddresses[address.toString()]); }; + txs_for_addr = function(addr) { + var amount = mockAddresses[addr].transactions.length; + return transactionList.slice(0, amount); + }; nodeMock.listTransactions = function(opts) { - var addr = opts.address; + return Promise.resolve(txs_for_addr(opts.address)); }; app = new BitcoreHTTP(nodeMock).app; agent = request(app); @@ -48,4 +52,18 @@ describe('BitcoreHTTP v1 addresses routes', function() { }); }); }); + describe('/addresses/:addresss/transactions', function() { + it('fails with invalid address', function(cb) { + agent.get('/v1/addresses/1BpbpfLdY7oBS9gK7aDXgvMgr1DpvNH3B2/transactions') + .expect(422) + .expect('/v1/addresses/ parameter must be a valid bitcoin address', cb); + }); + Object.keys(mockAddresses).forEach(function(addr) { + it('works with valid address ' + addr, function(cb) { + agent.get('/v1/addresses/' + addr + '/transactions') + .expect(200) + .expect(JSON.stringify(txs_for_addr(addr)), cb); + }); + }); + }); });