@@ -6,19 +6,20 @@ import {
66 testDataProvider ,
77 ListContextProvider ,
88} from 'ra-core' ;
9- import { createTheme , ThemeProvider } from '@mui/material/styles' ;
9+ import { createTheme , ThemeProvider , ThemeOptions } from '@mui/material/styles' ;
10+ import { deepmerge } from '@mui/utils' ;
1011
1112import { BulkExportButton } from './BulkExportButton' ;
1213
1314const theme = createTheme ( ) ;
1415
1516describe ( '<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- } ) ;
17+ const exporter = jest . fn ( ) . mockName ( 'exporter' ) ;
18+ const dataProvider = testDataProvider ( {
19+ getMany : jest . fn ( ) . mockResolvedValueOnce ( { data : [ ] , total : 0 } ) ,
20+ } ) ;
2121
22+ it ( 'should invoke dataProvider with meta' , async ( ) => {
2223 render (
2324 < CoreAdminContext dataProvider = { dataProvider } >
2425 < ThemeProvider theme = { theme } >
@@ -46,4 +47,38 @@ describe('<BulkExportButton />', () => {
4647 expect ( exporter ) . toHaveBeenCalled ( ) ;
4748 } ) ;
4849 } ) ;
50+
51+ it ( 'should be customized by a theme' , ( ) => {
52+ render (
53+ < CoreAdminContext dataProvider = { dataProvider } >
54+ < ThemeProvider
55+ theme = { deepmerge ( theme , {
56+ components : {
57+ RaBulkExportButton : {
58+ defaultProps : {
59+ label : 'Bulk Export' ,
60+ className : 'custom-class' ,
61+ 'data-testid' : 'themed-button' ,
62+ } ,
63+ } ,
64+ } ,
65+ } as ThemeOptions ) }
66+ >
67+ < ListContextProvider
68+ value = { { selectedIds : [ 'selectedId' ] } }
69+ >
70+ < BulkExportButton
71+ resource = "test"
72+ exporter = { exporter }
73+ meta = { { pass : 'meta' } }
74+ />
75+ </ ListContextProvider >
76+ </ ThemeProvider >
77+ </ CoreAdminContext >
78+ ) ;
79+
80+ const button = screen . getByTestId ( 'themed-button' ) ;
81+ expect ( button . textContent ) . toBe ( 'Bulk Export' ) ;
82+ expect ( button . classList ) . toContain ( 'custom-class' ) ;
83+ } ) ;
4984} ) ;
0 commit comments