UNPKG

mir-client

Version:
72 lines (60 loc) 1.7 kB
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() })