@@ -23,6 +23,42 @@ const NextJSLikeLink = React.forwardRef<HTMLAnchorElement, NextJSLinkProps>(
2323describe ( 'NavList' , ( ) => {
2424 implementsClassName ( NavList )
2525
26+ it ( 'renders data-component attributes for NavList, NavList.Item, and NavList.SubNav' , ( ) => {
27+ const { container, getByRole} = render (
28+ < NavList >
29+ < NavList . Item href = "#" > Item 1</ NavList . Item >
30+ < NavList . Item >
31+ Item 2
32+ < NavList . SubNav >
33+ < NavList . Item href = "#" > Sub Item 1</ NavList . Item >
34+ </ NavList . SubNav >
35+ </ NavList . Item >
36+ </ NavList > ,
37+ )
38+
39+ const nav = container . querySelector ( 'nav' )
40+ expect ( nav ) . toBeInTheDocument ( )
41+ expect ( nav ) . toHaveAttribute ( 'data-component' , 'NavList' )
42+
43+ const item1Link = getByRole ( 'link' , { name : 'Item 1' } )
44+ expect ( item1Link ) . toBeInTheDocument ( )
45+ expect ( item1Link ) . toHaveAttribute ( 'data-component' , 'NavList.Item' )
46+
47+ const item2Button = getByRole ( 'button' , { name : 'Item 2' } )
48+ expect ( item2Button ) . toBeInTheDocument ( )
49+ expect ( item2Button ) . toHaveAttribute ( 'data-component' , 'NavList.Item' )
50+
51+ const subNav = container . querySelector ( '[data-component="NavList.SubNav"]' )
52+ expect ( subNav ) . toBeInTheDocument ( )
53+
54+ // Expand so nested links are in the accessible tree
55+ fireEvent . click ( item2Button )
56+
57+ const subItem1Link = getByRole ( 'link' , { name : 'Sub Item 1' } )
58+ expect ( subItem1Link ) . toBeInTheDocument ( )
59+ expect ( subItem1Link ) . toHaveAttribute ( 'data-component' , 'NavList.Item' )
60+ } )
61+
2662 it ( 'supports TrailingAction' , async ( ) => {
2763 const { getByRole} = render (
2864 < NavList >
0 commit comments