Skip to content

Commit 2364b14

Browse files
add single select test
1 parent aa9bd76 commit 2364b14

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

packages/blade/src/components/Table/__tests__/Table.web.test.tsx

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import userEvent from '@testing-library/user-event';
2-
import { fireEvent, waitFor, act, getByLabelText } from '@testing-library/react';
2+
import { fireEvent, waitFor, act, getByLabelText, getByText } from '@testing-library/react';
33
import { Table } from '../Table';
44
import { TableBody, TableCell, TableRow } from '../TableBody';
55
import { TableFooter, TableFooterCell, TableFooterRow } from '../TableFooter';
@@ -341,6 +341,50 @@ describe('<Table />', () => {
341341
expect(getAllByRole('row')[0]).toHaveTextContent('completed');
342342
});
343343

344+
it('should render table with single select', async () => {
345+
const onSelectionChange = jest.fn();
346+
const user = userEvent.setup();
347+
const { getByText } = renderWithTheme(
348+
<Table
349+
data={{ nodes: nodes.slice(0, 5) }}
350+
selectionType="single"
351+
onSelectionChange={onSelectionChange}
352+
>
353+
{(tableData) => (
354+
<>
355+
<TableHeader>
356+
<TableHeaderRow>
357+
<TableHeaderCell>Payment ID</TableHeaderCell>
358+
<TableHeaderCell>Amount</TableHeaderCell>
359+
<TableHeaderCell>Status</TableHeaderCell>
360+
<TableHeaderCell>Type</TableHeaderCell>
361+
<TableHeaderCell>Method</TableHeaderCell>
362+
<TableHeaderCell>Name</TableHeaderCell>
363+
</TableHeaderRow>
364+
</TableHeader>
365+
<TableBody>
366+
{tableData.map((tableItem, index) => (
367+
<TableRow item={tableItem} key={index}>
368+
<TableCell>{tableItem.paymentId}</TableCell>
369+
<TableCell>{tableItem.amount}</TableCell>
370+
<TableCell>{tableItem.status}</TableCell>
371+
<TableCell>{tableItem.type}</TableCell>
372+
<TableCell>{tableItem.method}</TableCell>
373+
<TableCell>{tableItem.name}</TableCell>
374+
</TableRow>
375+
))}
376+
</TableBody>
377+
</>
378+
)}
379+
</Table>,
380+
);
381+
382+
const selectableRow = getByText('rzp01').closest('td');
383+
if (selectableRow) await user.click(selectableRow);
384+
expect(onSelectionChange).toHaveBeenCalledTimes(1);
385+
expect(onSelectionChange).toHaveBeenCalledWith({ values: [nodes[0]] });
386+
});
387+
344388
it('should render table with pagination', async () => {
345389
const onPageChange = jest.fn();
346390
const onPageSizeChange = jest.fn();

0 commit comments

Comments
 (0)