Skip to content

Commit 79c6d80

Browse files
test(Table): address sticky footer review comments
1 parent fbd1a8c commit 79c6d80

2 files changed

Lines changed: 47 additions & 14 deletions

File tree

packages/react-table/src/components/Table/__tests__/Tfoot.test.tsx

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,64 @@ import { render, screen } from '@testing-library/react';
22
import { Tfoot } from '../Tfoot';
33
import styles from '@patternfly/react-styles/css/components/Table/table';
44

5-
test('Renders a tfoot element with the table footer class', () => {
5+
test('Renders without children', () => {
66
render(
77
<table>
8-
<Tfoot>
9-
<tr>
10-
<td>Footer</td>
11-
</tr>
12-
</Tfoot>
8+
<Tfoot />
139
</table>
1410
);
1511

16-
expect(screen.getByText('Footer').closest('tfoot')).toHaveClass(styles.tableTfoot);
12+
expect(screen.getByRole('rowgroup')).toBeInTheDocument();
1713
});
1814

19-
test('Forwards props, class names, and refs to the tfoot element', () => {
15+
test('Renders with children', () => {
16+
render(
17+
<table>
18+
<Tfoot>Footer content</Tfoot>
19+
</table>
20+
);
21+
22+
expect(screen.getByRole('rowgroup')).toHaveTextContent('Footer content');
23+
});
24+
25+
test(`Renders with class ${styles.tableTfoot} only by default`, () => {
26+
render(
27+
<table>
28+
<Tfoot />
29+
</table>
30+
);
31+
32+
expect(screen.getByRole('rowgroup')).toHaveClass(styles.tableTfoot, { exact: true });
33+
});
34+
35+
test('Forwards refs to the tfoot element', () => {
2036
const ref = { current: null } as React.RefObject<HTMLTableSectionElement>;
2137

2238
render(
2339
<table>
24-
<Tfoot ref={ref} className="custom-footer" data-testid="footer">
25-
<tr />
26-
</Tfoot>
40+
<Tfoot ref={ref} />
41+
</table>
42+
);
43+
44+
expect(ref.current).toBe(screen.getByRole('rowgroup'));
45+
});
46+
47+
test('Renders with custom class names provided via prop', () => {
48+
render(
49+
<table>
50+
<Tfoot className="custom-footer" />
51+
</table>
52+
);
53+
54+
expect(screen.getByRole('rowgroup')).toHaveClass('custom-footer');
55+
});
56+
57+
test('Spreads additional props', () => {
58+
render(
59+
<table>
60+
<Tfoot data-custom="true" />
2761
</table>
2862
);
2963

30-
expect(screen.getByTestId('footer')).toHaveClass(styles.tableTfoot, 'custom-footer');
31-
expect(ref.current).toBe(screen.getByTestId('footer'));
64+
expect(screen.getByRole('rowgroup')).toHaveAttribute('data-custom', 'true');
3265
});

packages/react-table/src/components/Table/examples/TableStickyFooter.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const TableStickyFooter: React.FunctionComponent = () => {
66
return (
77
<div style={{ height: '400px' }}>
88
<InnerScrollContainer>
9-
<Table aria-label="Sticky footer table" gridBreakPoint="" isStickyFooter>
9+
<Table aria-label="Sticky footer table" isStickyFooter>
1010
<Thead>
1111
<Tr>
1212
<Th>Item</Th>

0 commit comments

Comments
 (0)