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); + }); + }); + }); });