Skip to content

Commit f847200

Browse files
committed
add WithListContext tests
1 parent 5fd2476 commit f847200

File tree

2 files changed

+40
-4
lines changed

2 files changed

+40
-4
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import React from 'react';
2+
import { render, screen } from '@testing-library/react';
3+
4+
import { Basic, Empty, Loading, Error } from './WithListContext.stories';
5+
6+
describe('WithListContext', () => {
7+
it('should display ', async () => {
8+
render(<Basic />);
9+
await screen.findByText('Total: 90');
10+
11+
const rows = screen.getAllByRole('row');
12+
expect(rows).toHaveLength(92); // 90 records + 1 header row + 1 footer row
13+
});
14+
15+
it('should display empty when no data', async () => {
16+
render(<Empty />);
17+
await screen.findByText('No fruits found');
18+
});
19+
20+
it('should display loading when pending', async () => {
21+
render(<Loading />);
22+
await screen.findByText('Loading...');
23+
});
24+
25+
it('should display error when error', async () => {
26+
jest.spyOn(console, 'error').mockImplementation(() => {});
27+
render(<Error />);
28+
await screen.findByText('Error loading data');
29+
});
30+
});

packages/ra-core/src/controller/list/WithListContext.stories.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@ const fruitsData = fruitscsv.split('\n').map((line, id) => {
114114
};
115115
});
116116

117-
const dataProvider = fakerestDataProvider({ fruits: fruitsData }, true);
117+
const dataProvider = fakerestDataProvider(
118+
{ fruits: fruitsData },
119+
process.env.NODE_ENV !== 'test'
120+
);
118121

119122
type Fruit = {
120123
id: number;
@@ -223,13 +226,16 @@ export const Chart = () => (
223226
</CoreAdminContext>
224227
);
225228

226-
const emptyDataProvider = fakerestDataProvider({ fruits: [] }, true);
229+
const emptyDataProvider = fakerestDataProvider(
230+
{ fruits: [] },
231+
process.env.NODE_ENV !== 'test'
232+
);
227233

228234
export const Empty = () => (
229235
<CoreAdminContext dataProvider={emptyDataProvider}>
230236
<ListBase resource="fruits" disableSyncWithLocation perPage={100}>
231237
<WithListContext<Fruit>
232-
empty={<div>No fruits available</div>}
238+
empty={<div>No fruits found</div>}
233239
render={({ isPending, data, total }) =>
234240
isPending ? (
235241
<>Loading...</>
@@ -317,7 +323,7 @@ export const Error = () => (
317323
<CoreAdminContext dataProvider={erroredDataProvider}>
318324
<ListBase resource="fruits" disableSyncWithLocation perPage={100}>
319325
<WithListContext<Fruit>
320-
error={<p>Error</p>}
326+
error={<p>Error loading data</p>}
321327
render={({ isPending, data, total }) =>
322328
isPending ? (
323329
<>Loading...</>

0 commit comments

Comments
 (0)