marmelab/react-admin · error · Error
getManyReference is not implemented
Error message
getManyReference is not implemented
What it means
testDataProvider's default getManyReference throws unless overridden. getManyReference serves foreign-key lists (ReferenceManyField, useGetManyReference), so this error means a test rendered such a component without stubbing it.
Source
Thrown at packages/ra-core/src/dataProvider/testDataProvider.ts:29
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 = (
overrides?: Partial<DataProvider>
): DataProvider => ({
...defaultTestDataProvider,
...overrides,
});
View on GitHub (pinned to 051f511bb0)
Solutions
- Stub getManyReference: testDataProvider({ getManyReference: async () => ({ data: [...], total: n }) })
- Use mockProvider with the related resource's records
- Render the related list with mocked children or mock useGetManyReference at the hook level
Example fix
// before
const dataProvider = testDataProvider();
// after
const dataProvider = testDataProvider({
getManyReference: async () => ({ data: [{ id: 1, post_id: 9 }], total: 1 }),
}); Defensive patterns
Strategy: try-catch
Validate before calling
if (!dataProviderOverrides.getManyReference) throw new Error('test must stub getManyReference'); Try / catch
try { await dataProvider.getManyReference(r, params); } catch (e) { /* stub getManyReference */ throw e; } Prevention
- Stub getManyReference when tests mount ReferenceManyField
- Use mockProvider with related-resource fixtures
- Check child components of Show/Edit for reference queries when stubbing
When it happens
Trigger: Rendering <ReferenceManyField> or calling useGetManyReference in tests using testDataProvider() without a getManyReference override.
Common situations: Testing comments-below-a-post style UI; stubbing getList but forgetting the reference variant; integration tests mounting Show pages containing ReferenceManyField.
Related errors
- create is not implemented
- delete not implemented
- deleteMany is not implemented
- getList is not implemented
- getMany is not implemented
AI-assisted analysis of marmelab/react-admin@051f511bb0 (2026-08-30).
Data as JSON: /api/errors/94ed7ee8cea7c73c.
Report an issue: GitHub.