@@ -2,31 +2,64 @@ import { render, screen } from '@testing-library/react';
22import { Tfoot } from '../Tfoot' ;
33import 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} ) ;
0 commit comments