diff --git a/packages/ra-core/src/controller/useCreateController.spec.tsx b/packages/ra-core/src/controller/useCreateController.spec.tsx index 1e3a8470b08..3e4cf5884f3 100644 --- a/packages/ra-core/src/controller/useCreateController.spec.tsx +++ b/packages/ra-core/src/controller/useCreateController.spec.tsx @@ -74,7 +74,9 @@ describe('useCreateController', () => { it('should call the dataProvider.create() function on save', async () => { const create = jest .fn() - .mockImplementationOnce((_, { data }) => Promise.resolve({ data })); + .mockImplementationOnce((_, { data }) => + Promise.resolve({ data: { id: 123, ...data } }) + ); const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), create, @@ -101,7 +103,8 @@ describe('useCreateController', () => { let saveCallback; const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), - create: (_, { data }) => Promise.resolve({ data }), + create: (_, { data }) => + Promise.resolve({ data: { id: 123, ...data } }), } as unknown) as DataProvider; const { dispatch } = renderWithRedux( @@ -168,7 +171,8 @@ describe('useCreateController', () => { let saveCallback; const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), - create: (_, { data }) => Promise.resolve({ data }), + create: (_, { data }) => + Promise.resolve({ data: { id: 123, ...data } }), } as unknown) as DataProvider; const onSuccess = jest.fn(); const { dispatch } = renderWithRedux( @@ -194,7 +198,8 @@ describe('useCreateController', () => { let saveCallback; const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), - create: (_, { data }) => Promise.resolve({ data }), + create: (_, { data }) => + Promise.resolve({ data: { id: 123, ...data } }), } as unknown) as DataProvider; const onSuccess = jest.fn(); const onSuccessSave = jest.fn(); @@ -286,7 +291,9 @@ describe('useCreateController', () => { let saveCallback; const create = jest .fn() - .mockImplementationOnce((_, { data }) => Promise.resolve({ data })); + .mockImplementationOnce((_, { data }) => + Promise.resolve({ data: { id: 123, ...data } }) + ); const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), create, @@ -317,7 +324,9 @@ describe('useCreateController', () => { let saveCallback; const create = jest .fn() - .mockImplementationOnce((_, { data }) => Promise.resolve({ data })); + .mockImplementationOnce((_, { data }) => + Promise.resolve({ data: { id: 123, ...data } }) + ); const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), create, diff --git a/packages/ra-core/src/controller/useEditController.spec.tsx b/packages/ra-core/src/controller/useEditController.spec.tsx index 6db4659205f..88354f9b78f 100644 --- a/packages/ra-core/src/controller/useEditController.spec.tsx +++ b/packages/ra-core/src/controller/useEditController.spec.tsx @@ -85,7 +85,7 @@ describe('useEditController', () => { const update = jest .fn() .mockImplementationOnce((_, { id, data, previousData }) => - Promise.resolve({ data: { ...previousData, ...data } }) + Promise.resolve({ data: { id, ...previousData, ...data } }) ); const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), @@ -115,7 +115,7 @@ describe('useEditController', () => { const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), update: (_, { id, data, previousData }) => - Promise.resolve({ data: { ...previousData, ...data } }), + Promise.resolve({ data: { id, ...previousData, ...data } }), } as unknown) as DataProvider; let saveCallback; const { dispatch } = renderWithRedux( @@ -148,7 +148,7 @@ describe('useEditController', () => { const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), update: (_, { id, data, previousData }) => - Promise.resolve({ data: { ...previousData, ...data } }), + Promise.resolve({ data: { id, ...previousData, ...data } }), } as unknown) as DataProvider; const { dispatch } = renderWithRedux( @@ -188,7 +188,7 @@ describe('useEditController', () => { const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), update: (_, { id, data, previousData }) => - Promise.resolve({ data: { ...previousData, ...data } }), + Promise.resolve({ data: { id, ...previousData, ...data } }), } as unknown) as DataProvider; const onSuccess = jest.fn(); const { dispatch } = renderWithRedux( @@ -219,7 +219,7 @@ describe('useEditController', () => { const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), update: (_, { id, data, previousData }) => - Promise.resolve({ data: { ...previousData, ...data } }), + Promise.resolve({ data: { id, ...previousData, ...data } }), } as unknown) as DataProvider; const onSuccess = jest.fn(); const onSuccessSave = jest.fn(); @@ -323,7 +323,9 @@ describe('useEditController', () => { let saveCallback; const update = jest .fn() - .mockImplementationOnce((_, { data }) => Promise.resolve({ data })); + .mockImplementationOnce((_, { id, data }) => + Promise.resolve({ data: { id, ...data } }) + ); const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), update, @@ -362,7 +364,9 @@ describe('useEditController', () => { let saveCallback; const update = jest .fn() - .mockImplementationOnce((_, { data }) => Promise.resolve({ data })); + .mockImplementationOnce((_, { id, data }) => + Promise.resolve({ data: { id, ...data } }) + ); const dataProvider = ({ getOne: () => Promise.resolve({ data: { id: 12 } }), update, diff --git a/packages/ra-core/src/core/dataFetchActions.ts b/packages/ra-core/src/core/dataFetchActions.ts index 99600d3efe1..de988518083 100644 --- a/packages/ra-core/src/core/dataFetchActions.ts +++ b/packages/ra-core/src/core/dataFetchActions.ts @@ -8,18 +8,18 @@ export const UPDATE_MANY = 'UPDATE_MANY'; export const DELETE = 'DELETE'; export const DELETE_MANY = 'DELETE_MANY'; -export const fetchActionsWithRecordResponse = [GET_ONE, CREATE, UPDATE]; +export const fetchActionsWithRecordResponse = ['getOne', 'create', 'update']; export const fetchActionsWithArrayOfIdentifiedRecordsResponse = [ - GET_LIST, - GET_MANY, - GET_MANY_REFERENCE, + 'getList', + 'getMany', + 'getManyReference', ]; export const fetchActionsWithArrayOfRecordsResponse = [ ...fetchActionsWithArrayOfIdentifiedRecordsResponse, - UPDATE_MANY, - DELETE_MANY, + 'updateMany', + 'deleteMany', ]; -export const fetchActionsWithTotalResponse = [GET_LIST, GET_MANY_REFERENCE]; +export const fetchActionsWithTotalResponse = ['getList', 'getManyReference']; export const sanitizeFetchType = (fetchType: string) => { switch (fetchType) { diff --git a/packages/ra-core/src/dataProvider/useDataProvider.spec.js b/packages/ra-core/src/dataProvider/useDataProvider.spec.js index ad542c94ae2..02ac95d1b44 100644 --- a/packages/ra-core/src/dataProvider/useDataProvider.spec.js +++ b/packages/ra-core/src/dataProvider/useDataProvider.spec.js @@ -87,7 +87,7 @@ describe('useDataProvider', () => { }); it('should dispatch CUSTOM_FETCH actions by default', async () => { - const getOne = jest.fn(() => Promise.resolve({ data: null })); + const getOne = jest.fn(() => Promise.resolve({ data: { id: 123 } })); const dataProvider = { getOne }; const { dispatch } = renderWithRedux( @@ -121,7 +121,9 @@ describe('useDataProvider', () => { return
{JSON.stringify(data)}
; return
loading
; }; - const getOne = jest.fn(() => Promise.resolve({ data: null })); + const getOne = jest.fn(() => + Promise.resolve({ data: { id: 123 } }) + ); const dataProvider = { getOne }; const { dispatch } = renderWithRedux(