Implement usage of nock.

feature/default_network_editable
Kevin Serrano 8 years ago
parent e42b35398b
commit c82a494b4b
  1. 34
      app/scripts/lib/config-manager.js
  2. 1
      package.json
  3. 13
      test/unit/config-manager-test.js

@ -288,29 +288,19 @@ ConfigManager.prototype.getCurrentFiat = function () {
return ('fiatCurrency' in data) && data.fiatCurrency return ('fiatCurrency' in data) && data.fiatCurrency
} }
ConfigManager.prototype.updateConversionRate = function (mock = false, mockCurrency = 'USD') { ConfigManager.prototype.updateConversionRate = function () {
var data = this.getData() var data = this.getData()
if (!mock) { return rp(`https://www.cryptonator.com/api/ticker/eth-${data.fiatCurrency}`)
return rp(`https://www.cryptonator.com/api/ticker/eth-${data.fiatCurrency}`) .then((response) => {
.then((response) => { const parsedResponse = JSON.parse(response)
const parsedResponse = JSON.parse(response) this.setConversionPrice(parsedResponse.ticker.price)
this.setConversionPrice(parsedResponse.ticker.price) this.setConversionDate(parsedResponse.timestamp)
this.setConversionDate(parsedResponse.timestamp) }).catch((err) => {
}).catch((err) => { console.error('Error in conversion.', err)
console.error('Error in conversion.', err) this.setConversionPrice(0)
this.setConversionPrice(0) this.setConversionDate('N/A')
this.setConversionDate('N/A') })
})
} else {
return new Promise(function(resolve, reject) { resolve() }).then((response) => {
this.setConversionPrice('11.01')
this.setConversionDate(1472065924)
}).catch((err) => {
console.error('Error in conversion.', err)
this.setConversionPrice('11.01')
this.setConversionDate(1472065924)
})
}
} }
ConfigManager.prototype.setConversionPrice = function (price) { ConfigManager.prototype.setConversionPrice = function (price) {

@ -108,6 +108,7 @@
"mocha-eslint": "^2.1.1", "mocha-eslint": "^2.1.1",
"mocha-jsdom": "^1.1.0", "mocha-jsdom": "^1.1.0",
"mocha-sinon": "^1.1.5", "mocha-sinon": "^1.1.5",
"nock": "^8.0.0",
"qs": "^6.2.0", "qs": "^6.2.0",
"qunit": "^0.9.1", "qunit": "^0.9.1",
"sinon": "^1.17.3", "sinon": "^1.17.3",

@ -4,6 +4,7 @@ const STORAGE_KEY = 'metamask-persistance-key'
var configManagerGen = require('../lib/mock-config-manager') var configManagerGen = require('../lib/mock-config-manager')
var configManager var configManager
const rp = require('request-promise') const rp = require('request-promise')
const nock = require('nock')
describe('config-manager', function() { describe('config-manager', function() {
@ -47,12 +48,15 @@ describe('config-manager', function() {
describe('#updateConversionRate', function() { describe('#updateConversionRate', function() {
it('should retrieve an update for ETH to USD and set it in memory', function(done) { it('should retrieve an update for ETH to USD and set it in memory', function(done) {
this.timeout(15000) this.timeout(15000)
var usdMock = nock('https://www.cryptonator.com')
.get('/api/ticker/eth-USD')
.reply(200, '{"ticker":{"base":"ETH","target":"USD","price":"11.02456145","volume":"44948.91745289","change":"-0.01472534"},"timestamp":1472072136,"success":true,"error":""}')
assert.equal(configManager.getConversionRate(), false) assert.equal(configManager.getConversionRate(), false)
var promise = new Promise( var promise = new Promise(
function (resolve, reject) { function (resolve, reject) {
configManager.setCurrentFiat('USD') configManager.setCurrentFiat('USD')
configManager.updateConversionRate(true, 'USD').then(function() { configManager.updateConversionRate().then(function() {
resolve() resolve()
}) })
}) })
@ -71,10 +75,15 @@ describe('config-manager', function() {
this.timeout(15000) this.timeout(15000)
assert.equal(configManager.getConversionRate(), false) assert.equal(configManager.getConversionRate(), false)
var usdMock = nock('https://www.cryptonator.com')
.get('/api/ticker/eth-JPY')
.reply(200, '{"ticker":{"base":"ETH","target":"JPY","price":"11.02456145","volume":"44948.91745289","change":"-0.01472534"},"timestamp":1472072136,"success":true,"error":""}')
var promise = new Promise( var promise = new Promise(
function (resolve, reject) { function (resolve, reject) {
configManager.setCurrentFiat('JPY') configManager.setCurrentFiat('JPY')
configManager.updateConversionRate(true, 'JPY').then(function() { configManager.updateConversionRate().then(function() {
resolve() resolve()
}) })
}) })

Loading…
Cancel
Save