marmelab/react-admin · error · Error
getList is not implemented
Error message
getList is not implemented
What it means
testDataProvider's default getList throws so any list-fetching test must supply its own dataset. This error indicates the List data path was exercised without a getList stub.
Source
Thrown at packages/ra-core/src/dataProvider/testDataProvider.ts:23
*
* @example
* const dataProvider = testDataProvider({
* getOne: async () => ({ data: { id: 123, title: 'foo' }})
* })
*/
const defaultTestDataProvider: DataProvider = {
create: async () => {
throw new Error('create is not implemented');
},
delete: async () => {
throw new Error('delete not implemented');
},
deleteMany: async () => {
throw new Error('deleteMany is not implemented');
},
getList: async () => {
throw new Error('getList is not implemented');
},
getMany: async () => {
throw new Error('getMany is not implemented');
},
getManyReference: async () => {
throw new Error('getManyReference is not implemented');
},
getOne: async () => {
throw new Error('getOne is not implemented');
},
update: async () => {
throw new Error('update not implemented');
},
updateMany: async () => {
throw new Error('updateMany not implemented');
},
};
export const testDataProvider = (View on GitHub (pinned to 051f511bb0)
Solutions
- Stub getList: testDataProvider({ getList: async () => ({ data: [...], total: n }) })
- Use mockProvider({ posts: [{ id: 1, ... }] }) which seeds list data per resource
- Narrow the test with a queryClient that mocks the react-query layer
Example fix
// before
const dataProvider = testDataProvider();
// after
const dataProvider = testDataProvider({
getList: async () => ({ data: [{ id: 1, title: 'foo' }], total: 1 }),
}); Defensive patterns
Strategy: try-catch
Validate before calling
if (!dataProviderOverrides.getList) throw new Error('test must stub getList'); Try / catch
try { await dataProvider.getList(r, params); } catch (e) { /* 'getList is not implemented' => add fixture */ throw e; } Prevention
- Always seed getList when testing List views
- Use mockProvider({ posts: [...] }) with fixtures
- Add getList stub when introducing new list queries
When it happens
Trigger: Rendering a <List> view, calling useListController/useGetList, or any query hitting dataProvider.getList in tests built on testDataProvider() without overrides.
Common situations: Mounting List pages in component tests; hooks tests calling useGetList; forgetting to stub getList after adding a new query to a component.
Related errors
- create is not implemented
- delete not implemented
- deleteMany is not implemented
- getMany is not implemented
- getManyReference is not implemented
AI-assisted analysis of marmelab/react-admin@051f511bb0 (2026-08-30).
Data as JSON: /api/errors/19fc4632d32522fa.
Report an issue: GitHub.