@gateway.fm/gtw-dvf-client-js
Version:
DVF client js lib with gateway.fm rpc endpoints
96 lines (74 loc) • 2.4 kB
JavaScript
const nock = require('nock')
const instance = require('./test/helpers/instance')
const _ = require('lodash')
const mockGetConf = require('./test/fixtures/getConf')
let dvf
describe('dvf.getOrder', () => {
beforeAll(async () => {
mockGetConf()
dvf = await instance()
})
it('Posts to get order API and gets response', async () => {
const orderId = '1'
const apiResponse = { cancelOrder: 'success' }
const payloadValidator = jest.fn(body => {
expect(body.orderId).toBe(orderId)
expect(typeof body.orderId).toBe('string')
return true
})
nock(dvf.config.api)
.post('/v1/trading/r/getOrder', payloadValidator)
.reply(200, apiResponse)
const response = await dvf.getOrder(orderId)
expect(payloadValidator).toBeCalled()
expect(response).toEqual(apiResponse)
})
it('Posts to get order API with { cid } and gets response', async () => {
const cid = 'cid-1'
const apiResponse = { cancelOrder: 'success' }
const payloadValidator = jest.fn(body => {
expect(body.cid).toBe(cid)
expect(typeof body.cid).toBe('string')
return true
})
nock(dvf.config.api)
.post('/v1/trading/r/getOrder', payloadValidator)
.reply(200, apiResponse)
const response = await dvf.getOrder({ cid })
expect(payloadValidator).toBeCalled()
expect(response).toEqual(apiResponse)
})
it('getOrder checks for orderId or cid....', async () => {
try {
await dvf.getOrder(null)
throw new Error('function should throw')
} catch (error) {
expect(error.message).toEqual('ERR_INVALID_ORDER_ID')
}
})
it('Posts to get order API and gets error response', async () => {
const apiErrorResponse = {
statusCode: 422,
error: 'Unprocessable Entity',
message:
'Please contact support if you believe there should not be an error here',
details: {
error: {
type: 'DVFError',
message: 'STARK_ORDER_VERIFICATION_ERROR'
}
}
}
const orderId = 1
const payloadValidator = jest.fn(() => true)
nock(dvf.config.api)
.post('/v1/trading/r/getOrder', payloadValidator)
.reply(422, apiErrorResponse)
try {
await dvf.getOrder(orderId)
} catch (e) {
expect(e.error).toEqual(apiErrorResponse)
expect(payloadValidator).toBeCalled()
}
})
})