UNPKG

ra-data-fakerest

Version:

JSON Server data provider for react-admin

67 lines (64 loc) 2.5 kB
import expect from 'expect'; import fakerestDataProvider from './index'; describe('ra-data-fakerest', () => { describe('getMany', () => { it('should return the records matching the given ids', async () => { const dataProvider = fakerestDataProvider({ posts: [ { id: 0, title: 'Hello, world!' }, { id: 1, title: 'FooBar' }, { id: 2, title: 'Goodbye, world!' }, ], }); const { data } = await dataProvider.getMany('posts', { ids: [1, 2], }); expect(data).toEqual([ { id: 1, title: 'FooBar' }, { id: 2, title: 'Goodbye, world!' }, ]); }); it('should preserve the order of the ids', async () => { const dataProvider = fakerestDataProvider({ posts: [ { id: 0, title: 'Hello, world!' }, { id: 1, title: 'FooBar' }, { id: 2, title: 'Goodbye, world!' }, ], }); const { data } = await dataProvider.getMany('posts', { ids: [2, 0], }); expect(data).toEqual([ { id: 2, title: 'Goodbye, world!' }, { id: 0, title: 'Hello, world!' }, ]); }); it('should return an empty result when no ids are provided', async () => { const dataProvider = fakerestDataProvider({ posts: [ { id: 0, title: 'Hello, world!' }, { id: 1, title: 'FooBar' }, { id: 2, title: 'Goodbye, world!' }, ], }); const { data } = await dataProvider.getMany('posts', { ids: [], }); expect(data).toEqual([]); }); it('should return an error when requesting a nonexisting id', async () => { jest.spyOn(console, 'error').mockImplementationOnce(() => {}); const dataProvider = fakerestDataProvider({ posts: [ { id: 0, title: 'Hello, world!' }, { id: 1, title: 'FooBar' }, { id: 2, title: 'Goodbye, world!' }, ], }); expect(async () => { await dataProvider.getMany('posts', { ids: [0, 3] }); }).rejects.toThrow(); }); }); });