UNPKG

insight-api-terracoin

Version:

A Terracoin blockchain REST and web socket API service for Bitcore Node.

129 lines (120 loc) 3.51 kB
'use strict'; var should = require('should'); var sinon = require('sinon'); var proxyquire = require('proxyquire'); var CurrencyController = require('../lib/currency'); describe('Currency', function() { var terracoinData = { general: { consensus_blockheight: 561311, consensus_version: 120058, consensus_protocolversion: 70103, all_user: 687, active_user: 372, registered_masternodes: 1583, registered_masternodes_verified: 770 }, exchange_rates: { trc_usd: 9.4858840414, btc_usd: 682.93, btc_trc: 0.01388998 } }; it.skip('will make live request to Terracoin Services', function(done) { var currency = new CurrencyController({}); var req = {}; var res = { jsonp: function(response) { response.status.should.equal(200); should.exist(response.data.trc_usd); (typeof response.data.trc_usd).should.equal('number'); done(); } }; currency.index(req, res); }); it('will retrieve a fresh value', function(done) { var TestCurrencyController = proxyquire('../lib/currency', { request: sinon.stub().callsArgWith(1, null, {statusCode: 200}, JSON.stringify(terracoinData)) }); var node = { log: { error: sinon.stub() } }; var currency = new TestCurrencyController({node: node}); currency.exchange_rates = { trc_usd: 9.4858840414, btc_usd: 682.93, btc_trc: 0.01388998 }; currency.timestamp = Date.now() - 61000 * CurrencyController.DEFAULT_CURRENCY_DELAY; var req = {}; var res = { jsonp: function(response) { response.status.should.equal(200); should.exist(response.data.trc_usd); response.data.trc_usd.should.equal(9.4858840414); done(); } }; currency.index(req, res); }); it('will log an error from request', function(done) { var TestCurrencyController = proxyquire('../lib/currency', { request: sinon.stub().callsArgWith(1, new Error('test')) }); var node = { log: { error: sinon.stub() } }; var currency = new TestCurrencyController({node: node}); currency.exchange_rates = { trc_usd: 9.4858840414, btc_usd: 682.93, btc_trc: 0.01388998 }; currency.timestamp = Date.now() - 65000 * CurrencyController.DEFAULT_CURRENCY_DELAY; var req = {}; var res = { jsonp: function(response) { response.status.should.equal(200); should.exist(response.data); response.data.trc_usd.should.equal(9.4858840414); node.log.error.callCount.should.equal(1); done(); } }; currency.index(req, res); }); it('will retrieve a cached value', function(done) { var request = sinon.stub(); var TestCurrencyController = proxyquire('../lib/currency', { request: request }); var node = { log: { error: sinon.stub() } }; var currency = new TestCurrencyController({node: node}); currency.exchange_rates = { trc_usd: 9.4858840414, btc_usd: 682.93, btc_trc: 0.01388998 }; currency.timestamp = Date.now(); var req = {}; var res = { jsonp: function(response) { response.status.should.equal(200); should.exist(response.data.trc_usd); response.data.trc_usd.should.equal(9.4858840414); request.callCount.should.equal(0); done(); } }; currency.index(req, res); }); });