Merge pull request #847 from matiu/bug/handleInsightErrors

handle empty Insight responses
This commit is contained in:
Gustavo Maximiliano Cortez 2014-07-07 20:26:12 -03:00
commit 6e442cd902
2 changed files with 35 additions and 4 deletions

View file

@ -2,6 +2,7 @@
var imports = require('soop').imports();
var bitcore = require('bitcore');
var preconditions = require('preconditions').singleton();
var http;
if (process.version) {
@ -78,8 +79,10 @@ Insight.prototype._getOptions = function(method, path, data) {
};
Insight.prototype.getTransactions = function(addresses, cb) {
var self = this;
preconditions.shouldBeArray(addresses);
preconditions.shouldBeFunction(cb);
var self = this;
if (!addresses || !addresses.length) return cb([]);
var txids = [];
@ -87,10 +90,13 @@ Insight.prototype.getTransactions = function(addresses, cb) {
_asyncForEach(addresses, function(addr, callback) {
var options = self._getOptions('GET', '/api/addr/' + addr);
self._request(options, function(err, res) {
var txids_tmp = res.transactions;
for (var i = 0; i < txids_tmp.length; i++) {
txids.push(txids_tmp[i]);
if (res && res.transactions) {
var txids_tmp = res.transactions;
for (var i = 0; i < txids_tmp.length; i++) {
txids.push(txids_tmp[i]);
}
}
callback();
});

View file

@ -126,6 +126,8 @@ describe('Insight model', function() {
});
}
it('#checkActivity for innactive addreses', function(done) {
var w = new Insight();
w.getTransactions = function(addresses, cb) {
@ -176,4 +178,27 @@ describe('Insight model', function() {
done();
});
});
it('should handle getTransaction null response', function(done) {
var w = new Insight();
w._request = sinon.stub().yields();
w.getTransactions(['asdasd'], function(ret) {
ret.length.should.equal(0);
done();
});
});
it('should handle getTransaction empty response', function(done) {
var w = new Insight();
w._request = sinon.stub().yields([]);
w.getTransactions(['asdasd'], function(ret) {
ret.length.should.equal(0);
done();
});
});
});