Skip to content

Commit 7476df8

Browse files
committed
add specs testing meta
1 parent d02e5bf commit 7476df8

File tree

2 files changed

+93
-0
lines changed

2 files changed

+93
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import * as React from 'react';
2+
import { screen, render, waitFor, fireEvent } from '@testing-library/react';
3+
import expect from 'expect';
4+
import {
5+
CoreAdminContext,
6+
testDataProvider,
7+
ListContextProvider,
8+
} from 'ra-core';
9+
import { createTheme, ThemeProvider } from '@mui/material/styles';
10+
11+
import { BulkExportButton } from './BulkExportButton';
12+
13+
const theme = createTheme();
14+
15+
describe('<BulkExportButton />', () => {
16+
it('should invoke dataProvider with meta', async () => {
17+
const exporter = jest.fn().mockName('exporter');
18+
const dataProvider = testDataProvider({
19+
getMany: jest.fn().mockResolvedValueOnce({ data: [], total: 0 }),
20+
});
21+
22+
render(
23+
<CoreAdminContext dataProvider={dataProvider}>
24+
<ThemeProvider theme={theme}>
25+
<ListContextProvider
26+
value={{ selectedIds: ['selectedId'] }}
27+
>
28+
<BulkExportButton
29+
resource="test"
30+
exporter={exporter}
31+
meta={{ pass: 'meta' }}
32+
/>
33+
</ListContextProvider>
34+
</ThemeProvider>
35+
</CoreAdminContext>
36+
);
37+
38+
fireEvent.click(screen.getByLabelText('ra.action.export'));
39+
40+
await waitFor(() => {
41+
expect(dataProvider.getMany).toHaveBeenCalledWith('test', {
42+
ids: ['selectedId'],
43+
meta: { pass: 'meta' },
44+
});
45+
46+
expect(exporter).toHaveBeenCalled();
47+
});
48+
});
49+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import * as React from 'react';
2+
import { screen, render, waitFor, fireEvent } from '@testing-library/react';
3+
import expect from 'expect';
4+
import { CoreAdminContext, testDataProvider } from 'ra-core';
5+
import { createTheme, ThemeProvider } from '@mui/material/styles';
6+
7+
import { ExportButton } from './ExportButton';
8+
9+
const theme = createTheme();
10+
11+
describe('<ExportButton />', () => {
12+
it('should invoke dataProvider with meta', async () => {
13+
const exporter = jest.fn().mockName('exporter');
14+
const dataProvider = testDataProvider({
15+
getList: jest.fn().mockResolvedValueOnce({ data: [], total: 0 }),
16+
});
17+
18+
render(
19+
<CoreAdminContext dataProvider={dataProvider}>
20+
<ThemeProvider theme={theme}>
21+
<ExportButton
22+
resource="test"
23+
filterValues={{ filters: 'override' }}
24+
exporter={exporter}
25+
meta={{ pass: 'meta' }}
26+
/>
27+
</ThemeProvider>
28+
</CoreAdminContext>
29+
);
30+
31+
fireEvent.click(screen.getByLabelText('ra.action.export'));
32+
33+
await waitFor(() => {
34+
expect(dataProvider.getList).toHaveBeenCalledWith('test', {
35+
sort: null,
36+
filter: { filters: 'override' },
37+
pagination: { page: 1, perPage: 1000 },
38+
meta: { pass: 'meta' },
39+
});
40+
41+
expect(exporter).toHaveBeenCalled();
42+
});
43+
});
44+
});

0 commit comments

Comments
 (0)