diff --git a/lib/expressapp.js b/lib/expressapp.js index 5e8caef..60c3639 100644 --- a/lib/expressapp.js +++ b/lib/expressapp.js @@ -314,19 +314,10 @@ ExpressApp.prototype.start = function(opts, cb) { }); }); - // DEPRECATED router.get('/v1/balance/', function(req, res) { getServerWithAuth(req, res, function(server) { - server.getBalance({}, function(err, balance) { - if (err) return returnError(err, res, req); - res.json(balance); - }); - }); - }); - - router.get('/v2/balance/', function(req, res) { - getServerWithAuth(req, res, function(server) { - server.getBalance2Steps({}, function(err, balance) { + var balanceFn = req.query.cache == '1' ? _.bind(server.getBalance2Steps, server) : _.bind(server.getBalance, server); + balanceFn({}, function(err, balance) { if (err) return returnError(err, res, req); res.json(balance); }); diff --git a/test/expressapp.js b/test/expressapp.js index d1310ca..a97f113 100644 --- a/test/expressapp.js +++ b/test/expressapp.js @@ -113,6 +113,45 @@ describe('ExpressApp', function() { }); }); + describe('Balance', function() { + it('should handle cache argument', function(done) { + var server = { + getBalance: sinon.stub().callsArgWith(1, null, {}), + getBalance2Steps: sinon.stub().callsArgWith(1, null, {}), + }; + var TestExpressApp = proxyquire('../lib/expressapp', { + './server': { + initialize: sinon.stub().callsArg(1), + getInstanceWithAuth: sinon.stub().callsArgWith(1, null, server), + } + }); + start(TestExpressApp, function() { + var reqOpts = { + url: testHost + ':' + testPort + config.basePath + '/v1/balance', + headers: { + 'x-identity': 'identity', + 'x-signature': 'signature' + } + }; + request(reqOpts, function(err, res, body) { + should.not.exist(err); + res.statusCode.should.equal(200); + server.getBalance.calledOnce.should.be.true; + server.getBalance2Steps.calledOnce.should.be.false; + + reqOpts.url += '?cache=1'; + request(reqOpts, function(err, res, body) { + should.not.exist(err); + res.statusCode.should.equal(200); + server.getBalance.calledTwice.should.be.false; + server.getBalance2Steps.calledOnce.should.be.true; + done(); + }); + }); + }); + }); + }); + describe('/v1/notifications', function(done) { var server, TestExpressApp, clock; beforeEach(function() { diff --git a/test/integration/server.js b/test/integration/server.js index 2043d63..2c69c22 100644 --- a/test/integration/server.js +++ b/test/integration/server.js @@ -1504,7 +1504,7 @@ describe('Wallet service', function() { }); }); - describe.only('#getBalance 2 steps', function() { + describe('#getBalance 2 steps', function() { var server, wallet, clock; var _threshold = Defaults.TWO_STEP_BALANCE_THRESHOLD; beforeEach(function(done) {