mir-client
Version:
A Mir API Client
72 lines (60 loc) • 1.7 kB
JavaScript
import axios from 'axios'
import MockAdapter from 'axios-mock-adapter'
import getOne from '../src/getOne'
const mockAx = axios.create()
const mock = new MockAdapter(mockAx)
test('GETONE', () => {
mock.onGet(/\/.*/).reply(200, {
_items: [{
test: true
}],
_meta: {
max_results: 25,
page: 1,
total: 0
}
})
const getter = getOne(mockAx, 'resource')
return getter('5ae390ea592e01773d969d5a').send().then((result) => {
expect(result.data._items).toEqual([{
test: true
}])
expect(result.data._meta).toEqual({
max_results: 25,
page: 1,
total: 0
})
})
})
test('GETONE functions alter params object', () => {
const getter = getOne(mockAx, 'resource')
var gt = getter('5ae390ea592e01773d969d5a').projection('name', true)
expect(gt).toEqual(expect.objectContaining({
params: {
projection: {
name: 1
}
}
}))
})
test('GETONE has params, headers, and complete function set', () => {
const getter = getOne(mockAx, 'resource')
var gt = getter('5ae390ea592e01773d969d5a')
expect(gt).toEqual(expect.objectContaining({
params: expect.any(Object),
headers: expect.any(Object),
projection: expect.any(Function),
send: expect.any(Function)
}))
})
test('GETONE projection function', () => {
const getter = getOne(mockAx, 'resource')
var gt = getter('5ae390ea592e01773d969d5a').projection('name', false)
expect(gt.params.projection).toEqual({
name: 0
})
})
test('GETONE projection throws with invalid bool value', () => {
const getter = getOne(mockAx, 'resource')
expect(() => getter('5ae390ea592e01773d969d5a').projection('name', 'no')).toThrow()
})