11import { render , screen } from '@testing-library/react' ;
22import userEvent from '@testing-library/user-event' ;
3- import BulkSelect from './BulkSelect' ;
3+ import BulkSelect , { BulkSelectValue } from './BulkSelect' ;
44
55describe ( 'BulkSelect component' , ( ) => {
66 test ( 'should render' , ( ) => {
@@ -100,4 +100,57 @@ describe('BulkSelect component', () => {
100100 expect ( screen . getByText ( 'Sélectionner la page (5)' ) ) . toBeInTheDocument ( ) ;
101101 expect ( screen . getByText ( 'Tout sélectionner (10)' ) ) . toBeInTheDocument ( ) ;
102102 } ) ;
103+
104+ test ( 'should call onSelect with source "dropdown" when choosing menu items' , async ( ) => {
105+ const user = userEvent . setup ( ) ;
106+ const onSelect = jest . fn ( ) ;
107+ render (
108+ < BulkSelect
109+ canSelectAll
110+ pageCount = { 5 }
111+ totalCount = { 10 }
112+ selectedCount = { 0 }
113+ pageSelected = { false }
114+ pagePartiallySelected = { false }
115+ onSelect = { onSelect }
116+ />
117+ ) ;
118+
119+ const openMenu = async ( ) => {
120+ await user . click ( screen . getByLabelText ( 'Bulk select toggle' ) ) ;
121+ } ;
122+
123+ await openMenu ( ) ;
124+ await user . click ( screen . getByRole ( 'menuitem' , { name : 'Select none (0)' } ) ) ;
125+ expect ( onSelect ) . toHaveBeenLastCalledWith ( BulkSelectValue . none , 'dropdown' ) ;
126+
127+ onSelect . mockClear ( ) ;
128+ await openMenu ( ) ;
129+ await user . click ( screen . getByRole ( 'menuitem' , { name : 'Select page (5)' } ) ) ;
130+ expect ( onSelect ) . toHaveBeenLastCalledWith ( BulkSelectValue . page , 'dropdown' ) ;
131+
132+ onSelect . mockClear ( ) ;
133+ await openMenu ( ) ;
134+ await user . click ( screen . getByRole ( 'menuitem' , { name : 'Select all (10)' } ) ) ;
135+ expect ( onSelect ) . toHaveBeenLastCalledWith ( BulkSelectValue . all , 'dropdown' ) ;
136+ } ) ;
137+
138+ test ( 'should call onSelect with source "checkbox" when using split checkbox' , async ( ) => {
139+ const user = userEvent . setup ( ) ;
140+ const onSelect = jest . fn ( ) ;
141+ render (
142+ < BulkSelect
143+ canSelectAll
144+ pageCount = { 5 }
145+ totalCount = { 10 }
146+ selectedCount = { 0 }
147+ pageSelected = { false }
148+ pagePartiallySelected = { false }
149+ onSelect = { onSelect }
150+ />
151+ ) ;
152+
153+ await user . click ( screen . getByRole ( 'checkbox' , { name : 'Select page' } ) ) ;
154+ expect ( onSelect ) . toHaveBeenCalledWith ( BulkSelectValue . page , 'checkbox' ) ;
155+ } ) ;
103156} ) ;
0 commit comments