Skip to content

Commit 0d120d9

Browse files
committed
test(BulkSelect): add unit tests for source
Assisted-by: Cursor
1 parent 16a47b8 commit 0d120d9

1 file changed

Lines changed: 54 additions & 1 deletion

File tree

packages/module/src/BulkSelect/BulkSelect.test.tsx

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { render, screen } from '@testing-library/react';
22
import userEvent from '@testing-library/user-event';
3-
import BulkSelect from './BulkSelect';
3+
import BulkSelect, { BulkSelectValue } from './BulkSelect';
44

55
describe('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

Comments
 (0)