Support itbit exchange/ticker. Additions (#232)
* Initial itBit implementation * Add tests for calculatePrice in exchange/itbit.js * Add etherium to supported crypto codes in common/itbit.js * Apply standardjs to itbit files * itbit trade test. not important * test getCurrencyRates in ticker/itbit.js
This commit is contained in:
parent
8e1f9e0b83
commit
b254f7f2be
12 changed files with 775 additions and 11 deletions
78
test/unit/itbit-calculate-price.js
Normal file
78
test/unit/itbit-calculate-price.js
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
import test from 'ava'
|
||||
import rewire from 'rewire'
|
||||
|
||||
function rewireCalculatePrice (commonMock) {
|
||||
const itbit = rewire('../../lib/plugins/exchange/itbit/itbit')
|
||||
|
||||
itbit.__set__('common', commonMock)
|
||||
|
||||
const calculatePrice = itbit.__get__('calculatePrice')
|
||||
|
||||
return calculatePrice
|
||||
}
|
||||
|
||||
test('calculate minimum available price for buy', async t => {
|
||||
const commonMock = {
|
||||
request () {
|
||||
return Promise.resolve({
|
||||
asks: [
|
||||
[2, 10],
|
||||
[4, 15],
|
||||
[4.5, 17]
|
||||
],
|
||||
bids: []
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const calculatePrice = rewireCalculatePrice(commonMock)
|
||||
|
||||
let price = await calculatePrice('buy', 'XBTUSD', 20)
|
||||
|
||||
t.is(price, 4)
|
||||
})
|
||||
|
||||
test('calculate minimum available price for sell', async t => {
|
||||
const commonMock = {
|
||||
request () {
|
||||
return Promise.resolve({
|
||||
bids: [
|
||||
[2, 10],
|
||||
[3, 15],
|
||||
[4.5, 17]
|
||||
],
|
||||
asks: []
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const calculatePrice = rewireCalculatePrice(commonMock)
|
||||
|
||||
let price = await calculatePrice('sell', 'XBTUSD', 20)
|
||||
|
||||
t.is(price, 3)
|
||||
})
|
||||
|
||||
test('throw error on insufficient trade depth', async t => {
|
||||
t.plan(1)
|
||||
|
||||
const commonMock = {
|
||||
request () {
|
||||
return Promise.resolve({
|
||||
asks: [
|
||||
[2, 10],
|
||||
[4, 15],
|
||||
[4.5, 17]
|
||||
],
|
||||
bids: []
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const calculatePrice = rewireCalculatePrice(commonMock)
|
||||
|
||||
calculatePrice('buy', 'XBTUSD', 100)
|
||||
.catch(err => {
|
||||
t.is(err.message, 'Insufficient market depth')
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue