69 lines
2.0 KiB
JavaScript
69 lines
2.0 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
'use strict';
|
|
|
|
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
|
|
|
|
var _ = require('lodash');
|
|
var async = require('async');
|
|
var assert = require('assert');
|
|
var fs = require('fs');
|
|
var Address = require('../../app/models/Address');
|
|
var addresses = require('../../app/controllers/addresses');
|
|
var TransactionDb = require('../../lib/TransactionDb').default();
|
|
var fixture = JSON.parse(fs.readFileSync('test/integration/txs.json'));
|
|
var should = require('chai');
|
|
var sinon = require('sinon');
|
|
|
|
var txDb;
|
|
describe('Transactions for multiple addresses', function() {
|
|
this.timeout(5000);
|
|
|
|
var req, res;
|
|
before(function(c) {
|
|
txDb = TransactionDb;
|
|
|
|
var i = 0;
|
|
_.each(_.flatten(_.pluck(fixture, 'addrs')), function(addr) {
|
|
TransactionDb.deleteCacheForAddress(addr, function() {
|
|
if (++i === fixture.length) return c();
|
|
});
|
|
});
|
|
});
|
|
|
|
beforeEach(function(c) {
|
|
req = {};
|
|
res = {};
|
|
res.jsonp = sinon.spy();
|
|
return c();
|
|
});
|
|
|
|
describe('Transactions from multiple addresses', function () {
|
|
_.each(fixture, function (f) {
|
|
it(f.test, function (done) {
|
|
req.param = sinon.stub();
|
|
req.param.withArgs('addrs').returns(f.addrs.join(','));
|
|
req.param.withArgs('from').returns(f.from);
|
|
req.param.withArgs('to').returns(f.to);
|
|
|
|
var paginated = !_.isUndefined(f.from) || !_.isUndefined(f.to);
|
|
addresses.multitxs(req, res, function() {
|
|
var txs = res.jsonp.getCall(0).args[0];
|
|
txs.should.exist;
|
|
if (paginated) {
|
|
txs.totalItems.should.equal(f.totalTransactions);
|
|
txs.items.length.should.equal(f.returnedTransactions);
|
|
if (f.transactions) {
|
|
JSON.stringify(_.pluck(txs.items, 'txid')).should.equal(JSON.stringify(f.transactions));
|
|
}
|
|
} else {
|
|
txs.should.be.instanceof(Array);
|
|
txs.length.should.equal(f.returnedTransactions);
|
|
}
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|