Skip to content

Commit 59c7de1

Browse files
committed
Add more tests
1 parent cd529bd commit 59c7de1

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

packages/ra-core/src/controller/button/useDeleteController.spec.tsx

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,49 @@ describe('useDeleteController', () => {
5252
})
5353
);
5454
});
55+
it('should allow to override the record and the resource from closest context providers', async () => {
56+
const dataProvider = testDataProvider({
57+
delete: jest.fn((ressource, params) => {
58+
return Promise.resolve({ data: params?.previousData });
59+
}),
60+
});
61+
62+
const MockComponent = () => {
63+
const { handleDelete } = useDeleteController({
64+
resource: 'comments',
65+
record: { id: 2 },
66+
mutationMode: 'pessimistic',
67+
});
68+
return <button onClick={handleDelete}>Delete</button>;
69+
};
70+
71+
render(
72+
<TestMemoryRouter>
73+
<CoreAdminContext dataProvider={dataProvider}>
74+
<Routes>
75+
<Route
76+
path="/"
77+
element={
78+
<ResourceContextProvider value="posts">
79+
<RecordContextProvider value={{ id: 1 }}>
80+
<MockComponent />
81+
</RecordContextProvider>
82+
</ResourceContextProvider>
83+
}
84+
/>
85+
</Routes>
86+
</CoreAdminContext>
87+
</TestMemoryRouter>
88+
);
89+
90+
const button = await screen.findByText('Delete');
91+
fireEvent.click(button);
92+
93+
await waitFor(() =>
94+
expect(dataProvider.delete).toHaveBeenCalledWith('comments', {
95+
id: 2,
96+
previousData: { id: 2 },
97+
})
98+
);
99+
});
55100
});

0 commit comments

Comments
 (0)