_ is amazing :shipit:
This commit is contained in:
parent
824e8ee662
commit
6a1162cae8
@ -3,17 +3,6 @@
|
|||||||
var bitcore = require('bitcore');
|
var bitcore = require('bitcore');
|
||||||
var Block = bitcore.Block;
|
var Block = bitcore.Block;
|
||||||
|
|
||||||
Object.values = function(obj) {
|
|
||||||
var vals = [];
|
|
||||||
for (var key in obj) {
|
|
||||||
if (obj.hasOwnProperty(key)) {
|
|
||||||
vals.push(obj[key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return vals;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
var mockBlocks = {};
|
var mockBlocks = {};
|
||||||
var blockHexs = require('./blocks.json');
|
var blockHexs = require('./blocks.json');
|
||||||
blockHexs.map(function(hex) {
|
blockHexs.map(function(hex) {
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var bitcore = require('bitcore');
|
var bitcore = require('bitcore');
|
||||||
|
var _ = bitcore.deps._;
|
||||||
|
|
||||||
var mockTransactions = {};
|
var mockTransactions = {};
|
||||||
var blocks = require('./blocks');
|
var blocks = require('./blocks');
|
||||||
Object.values(blocks).forEach(function(block) {
|
_.each(blocks, function(block) {
|
||||||
block.transactions.forEach(function(tx) {
|
block.transactions.forEach(function(tx) {
|
||||||
mockTransactions[tx.id] = tx;
|
mockTransactions[tx.id] = tx;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -18,7 +18,7 @@ var mockTransactions = require('../data/transactions');
|
|||||||
describe('BitcoreHTTP v1 addresses routes', function() {
|
describe('BitcoreHTTP v1 addresses routes', function() {
|
||||||
|
|
||||||
// mocks
|
// mocks
|
||||||
var transactionList = Object.values(mockTransactions);
|
var transactionList = _.values(mockTransactions);
|
||||||
var nodeMock, app, agent;
|
var nodeMock, app, agent;
|
||||||
var txs_for_addr = function(addr) {
|
var txs_for_addr = function(addr) {
|
||||||
var amount = mockAddresses[addr].summary.transactions.length;
|
var amount = mockAddresses[addr].summary.transactions.length;
|
||||||
@ -74,7 +74,7 @@ describe('BitcoreHTTP v1 addresses routes', function() {
|
|||||||
it('fails with invalid address', function(cb) {
|
it('fails with invalid address', function(cb) {
|
||||||
failsWithInvalidAddress(agent, '/v1/addresses/1BpbpfLdY7oBS9gK7aDXgvMgr1DpvNH3B2', cb);
|
failsWithInvalidAddress(agent, '/v1/addresses/1BpbpfLdY7oBS9gK7aDXgvMgr1DpvNH3B2', cb);
|
||||||
});
|
});
|
||||||
Object.keys(mockAddresses).forEach(function(addr) {
|
_.keys(mockAddresses).forEach(function(addr) {
|
||||||
var info = mockAddresses[addr];
|
var info = mockAddresses[addr];
|
||||||
it('works with valid address ' + addr, function(cb) {
|
it('works with valid address ' + addr, function(cb) {
|
||||||
agent.get('/v1/addresses/' + addr)
|
agent.get('/v1/addresses/' + addr)
|
||||||
@ -87,7 +87,7 @@ describe('BitcoreHTTP v1 addresses routes', function() {
|
|||||||
it('fails with invalid address', function(cb) {
|
it('fails with invalid address', function(cb) {
|
||||||
failsWithInvalidAddress(agent, '/v1/addresses/1BpbpfLdY7oBS9gK7aDXgvMgr1DpvNH3B2/transactions', cb);
|
failsWithInvalidAddress(agent, '/v1/addresses/1BpbpfLdY7oBS9gK7aDXgvMgr1DpvNH3B2/transactions', cb);
|
||||||
});
|
});
|
||||||
Object.keys(mockAddresses).forEach(function(addr) {
|
_.keys(mockAddresses).forEach(function(addr) {
|
||||||
it('works with valid address ' + addr, function(cb) {
|
it('works with valid address ' + addr, function(cb) {
|
||||||
agent.get('/v1/addresses/' + addr + '/transactions')
|
agent.get('/v1/addresses/' + addr + '/transactions')
|
||||||
.expect(200)
|
.expect(200)
|
||||||
@ -102,7 +102,7 @@ describe('BitcoreHTTP v1 addresses routes', function() {
|
|||||||
.expect('/v1/addresses/ parameter must be a bitcoin address list', cb);
|
.expect('/v1/addresses/ parameter must be a bitcoin address list', cb);
|
||||||
|
|
||||||
});
|
});
|
||||||
Object.keys(mockAddresses).forEach(function(addr) {
|
_.keys(mockAddresses).forEach(function(addr) {
|
||||||
it('works with valid address ' + addr, function(cb) {
|
it('works with valid address ' + addr, function(cb) {
|
||||||
agent.get('/v1/addresses/' + addr + '/utxos')
|
agent.get('/v1/addresses/' + addr + '/utxos')
|
||||||
.expect(200)
|
.expect(200)
|
||||||
@ -111,7 +111,7 @@ describe('BitcoreHTTP v1 addresses routes', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('/addresses/:addresses/utxos', function() {
|
describe('/addresses/:addresses/utxos', function() {
|
||||||
powerset(Object.keys(mockAddresses)).forEach(function(addresses) {
|
powerset(_.keys(mockAddresses)).forEach(function(addresses) {
|
||||||
if (addresses.length === 0) {
|
if (addresses.length === 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,24 +17,24 @@ var mockBlocks = require('../data/blocks');
|
|||||||
describe('BitcoreHTTP v1 blocks routes', function() {
|
describe('BitcoreHTTP v1 blocks routes', function() {
|
||||||
|
|
||||||
// mocks
|
// mocks
|
||||||
var b1 = mockBlocks[Object.keys(mockBlocks)[0]];
|
var b1 = mockBlocks[_.keys(mockBlocks)[0]];
|
||||||
var firstBlock = mockBlocks[Object.keys(mockBlocks).splice(0, 1)[0]];
|
var firstBlock = mockBlocks[_.keys(mockBlocks).splice(0, 1)[0]];
|
||||||
var secondBlock = mockBlocks[Object.keys(mockBlocks).splice(1, 1)[0]];
|
var secondBlock = mockBlocks[_.keys(mockBlocks).splice(1, 1)[0]];
|
||||||
var lastBlock = mockBlocks[Object.keys(mockBlocks).splice(-1)[0]];
|
var lastBlock = mockBlocks[_.keys(mockBlocks).splice(-1)[0]];
|
||||||
var blockForHash = function(hash) {
|
var blockForHash = function(hash) {
|
||||||
return mockBlocks[hash];
|
return mockBlocks[hash];
|
||||||
};
|
};
|
||||||
var last3 = Object.keys(mockBlocks).splice(-3).map(blockForHash);
|
var last3 = _.keys(mockBlocks).splice(-3).map(blockForHash);
|
||||||
var some2 = Object.keys(mockBlocks).splice(2,2).map(blockForHash);
|
var some2 = _.keys(mockBlocks).splice(2,2).map(blockForHash);
|
||||||
var nodeMock, app, agent;
|
var nodeMock, app, agent;
|
||||||
var blockList = Object.values(mockBlocks);
|
var blockList = _.values(mockBlocks);
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
nodeMock = new EventEmitter();
|
nodeMock = new EventEmitter();
|
||||||
nodeMock.getBlock = function(blockHash) {
|
nodeMock.getBlock = function(blockHash) {
|
||||||
var block;
|
var block;
|
||||||
if (typeof blockHash === 'number') {
|
if (typeof blockHash === 'number') {
|
||||||
var height = blockHash;
|
var height = blockHash;
|
||||||
block = mockBlocks[Object.keys(mockBlocks)[height - 100000]];
|
block = mockBlocks[_.keys(mockBlocks)[height - 100000]];
|
||||||
} else {
|
} else {
|
||||||
block = mockBlocks[blockHash];
|
block = mockBlocks[blockHash];
|
||||||
}
|
}
|
||||||
@ -107,7 +107,7 @@ describe('BitcoreHTTP v1 blocks routes', function() {
|
|||||||
.expect(404)
|
.expect(404)
|
||||||
.expect('Block with id 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b600000000 not found', cb);
|
.expect('Block with id 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b600000000 not found', cb);
|
||||||
});
|
});
|
||||||
Object.keys(mockBlocks).forEach(function(hash) {
|
_.keys(mockBlocks).forEach(function(hash) {
|
||||||
var block = mockBlocks[hash];
|
var block = mockBlocks[hash];
|
||||||
it('works with valid blockHash ...' + hash.substring(hash.length - 8), function(cb) {
|
it('works with valid blockHash ...' + hash.substring(hash.length - 8), function(cb) {
|
||||||
agent.get('/v1/blocks/' + hash)
|
agent.get('/v1/blocks/' + hash)
|
||||||
|
|||||||
@ -19,7 +19,7 @@ describe('BitcoreHTTP v1 transactions routes', function() {
|
|||||||
|
|
||||||
// mocks
|
// mocks
|
||||||
var mockValidTx = new Transaction();
|
var mockValidTx = new Transaction();
|
||||||
var t1 = mockTransactions[Object.keys(mockTransactions)[0]];
|
var t1 = mockTransactions[_.keys(mockTransactions)[0]];
|
||||||
var nodeMock, app, agent;
|
var nodeMock, app, agent;
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
nodeMock = new EventEmitter();
|
nodeMock = new EventEmitter();
|
||||||
@ -58,7 +58,7 @@ describe('BitcoreHTTP v1 transactions routes', function() {
|
|||||||
it('returns 404 with non existent transaction', function(cb) {
|
it('returns 404 with non existent transaction', function(cb) {
|
||||||
reportsNotFound(agent, '/v1/transactions/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b600000000', cb);
|
reportsNotFound(agent, '/v1/transactions/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b600000000', cb);
|
||||||
});
|
});
|
||||||
Object.keys(mockTransactions).forEach(function(hash) {
|
_.keys(mockTransactions).forEach(function(hash) {
|
||||||
it('works with valid txHash ...' + hash.substring(hash.length - 8), function(cb) {
|
it('works with valid txHash ...' + hash.substring(hash.length - 8), function(cb) {
|
||||||
agent.get('/v1/transactions/' + hash)
|
agent.get('/v1/transactions/' + hash)
|
||||||
.expect(200)
|
.expect(200)
|
||||||
@ -115,7 +115,7 @@ describe('BitcoreHTTP v1 transactions routes', function() {
|
|||||||
reportsNotFound(agent,
|
reportsNotFound(agent,
|
||||||
'/v1/transactions/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b600000000/' + name, cb);
|
'/v1/transactions/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b600000000/' + name, cb);
|
||||||
});
|
});
|
||||||
Object.keys(mockTransactions).forEach(function(hash) {
|
_.keys(mockTransactions).forEach(function(hash) {
|
||||||
var tx = mockTransactions[hash];
|
var tx = mockTransactions[hash];
|
||||||
var summary = hash.substring(hash.length - 8);
|
var summary = hash.substring(hash.length - 8);
|
||||||
it('works with valid txHash ...' + summary + 'getting all ' + name, function(cb) {
|
it('works with valid txHash ...' + summary + 'getting all ' + name, function(cb) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user