{"record":{"id":"19fc4632d32522fa","repo":"marmelab/react-admin","slug":"getlist-is-not-implemented","errorCode":null,"errorMessage":"getList is not implemented","messagePattern":"getList is not implemented","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/ra-core/src/dataProvider/testDataProvider.ts","lineNumber":23,"sourceCode":" *\n * @example\n * const dataProvider = testDataProvider({\n *    getOne: async () => ({ data: { id: 123, title: 'foo' }})\n * })\n */\n\nconst defaultTestDataProvider: DataProvider = {\n    create: async () => {\n        throw new Error('create is not implemented');\n    },\n    delete: async () => {\n        throw new Error('delete not implemented');\n    },\n    deleteMany: async () => {\n        throw new Error('deleteMany is not implemented');\n    },\n    getList: async () => {\n        throw new Error('getList is not implemented');\n    },\n    getMany: async () => {\n        throw new Error('getMany is not implemented');\n    },\n    getManyReference: async () => {\n        throw new Error('getManyReference is not implemented');\n    },\n    getOne: async () => {\n        throw new Error('getOne is not implemented');\n    },\n    update: async () => {\n        throw new Error('update not implemented');\n    },\n    updateMany: async () => {\n        throw new Error('updateMany not implemented');\n    },\n};\nexport const testDataProvider = (","sourceCodeStart":5,"sourceCodeEnd":41,"githubUrl":"https://github.com/marmelab/react-admin/blob/051f511bb0afb5ea565c2d3728bf4dab0a6fa5e0/packages/ra-core/src/dataProvider/testDataProvider.ts#L5-L41","documentation":"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.","triggerScenarios":"Rendering a <List> view, calling useListController/useGetList, or any query hitting dataProvider.getList in tests built on testDataProvider() without overrides.","commonSituations":"Mounting List pages in component tests; hooks tests calling useGetList; forgetting to stub getList after adding a new query to a component.","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"],"exampleFix":"// before\nconst dataProvider = testDataProvider();\n// after\nconst dataProvider = testDataProvider({\n  getList: async () => ({ data: [{ id: 1, title: 'foo' }], total: 1 }),\n});","handlingStrategy":"try-catch","validationCode":"if (!dataProviderOverrides.getList) throw new Error('test must stub getList');","typeGuard":null,"tryCatchPattern":"try { await dataProvider.getList(r, params); } catch (e) { /* 'getList is not implemented' => add fixture */ throw e; }","preventionTips":["Always seed getList when testing List views","Use mockProvider({ posts: [...] }) with fixtures","Add getList stub when introducing new list queries"],"tags":["react-admin","testing","data-provider"],"backgroundTag":"unimplemented-method","analyzedSha":"051f511bb0afb5ea565c2d3728bf4dab0a6fa5e0","analyzedAt":"2026-08-30T02:28:14.926Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}