@@ -9,42 +9,55 @@ import React from 'react';
99import { render } from 'garden-test-utils' ;
1010import { PALETTE , getColorV8 , DEFAULT_THEME } from '@zendeskgarden/react-theming' ;
1111import { Chrome } from '../Chrome' ;
12- import { NavItem } from './NavItem' ;
1312import { Nav } from './Nav' ;
1413import { PRODUCTS , Product } from '../../types' ;
1514
1615describe ( 'NavItem' , ( ) => {
1716 it ( 'passes ref to underlying DOM element' , ( ) => {
1817 const ref = React . createRef < HTMLButtonElement > ( ) ;
19- const { container } = render ( < NavItem ref = { ref } /> ) ;
18+ const { getByTestId } = render (
19+ < Nav . List >
20+ < Nav . Item ref = { ref } data-test-id = "item" />
21+ </ Nav . List >
22+ ) ;
2023
21- expect ( container . firstChild ) . toBe ( ref . current ) ;
24+ expect ( getByTestId ( 'item' ) ) . toBe ( ref . current ) ;
2225 } ) ;
2326
2427 it ( 'renders expanded styling' , ( ) => {
25- const { container } = render (
28+ const { getByTestId } = render (
2629 < Nav isExpanded >
27- < NavItem />
30+ < Nav . List >
31+ < Nav . Item data-test-id = "item" />
32+ </ Nav . List >
2833 </ Nav >
2934 ) ;
3035
31- expect ( container . firstChild ! . firstChild ) . toHaveStyle ( `
36+ expect ( getByTestId ( 'item' ) ) . toHaveStyle ( `
3237 justify-content: start;
3338 text-align: inherit;
3439 ` ) ;
3540 } ) ;
3641
3742 describe ( 'Current' , ( ) => {
3843 it ( 'renders state attribute when current' , ( ) => {
39- const { getByTestId } = render ( < NavItem isCurrent data-test-id = "current-nav-item" /> ) ;
44+ const { getByTestId } = render (
45+ < Nav . List >
46+ < Nav . Item isCurrent data-test-id = "current-nav-item" />
47+ </ Nav . List >
48+ ) ;
4049
4150 const currentNavItem = getByTestId ( 'current-nav-item' ) ;
4251
4352 expect ( currentNavItem ) . toHaveAttribute ( 'aria-current' , 'true' ) ;
4453 } ) ;
4554
4655 it ( 'does not render state attribute when not current' , ( ) => {
47- const { getByTestId } = render ( < NavItem data-test-id = "nav-item" /> ) ;
56+ const { getByTestId } = render (
57+ < Nav . List >
58+ < Nav . Item data-test-id = "nav-item" />
59+ </ Nav . List >
60+ ) ;
4861
4962 const navItem = getByTestId ( 'nav-item' ) ;
5063
@@ -54,110 +67,110 @@ describe('NavItem', () => {
5467
5568 describe ( 'Order' , ( ) => {
5669 it ( 'renders correct order if used as brandmark' , ( ) => {
57- const { container } = render ( < NavItem hasBrandmark /> ) ;
70+ const { container } = render ( < Nav . Item hasBrandmark /> ) ;
5871
5972 expect ( container . firstChild ) . toHaveStyleRule ( 'order' , '1' ) ;
6073 } ) ;
6174
6275 it ( 'renders correct order if used as logo' , ( ) => {
63- const { container } = render ( < NavItem hasLogo /> ) ;
76+ const { container } = render ( < Nav . Item hasLogo /> ) ;
6477
65- expect ( container . firstChild ) . toHaveStyleRule ( 'order' , '0 ' ) ;
78+ expect ( container . firstChild ) . toHaveStyleRule ( 'order' , '-1 ' ) ;
6679 } ) ;
6780 } ) ;
6881
6982 describe ( 'Opacity' , ( ) => {
7083 it ( 'renders correct opacity if used as brandmark' , ( ) => {
71- const { container } = render ( < NavItem hasBrandmark /> ) ;
84+ const { container } = render ( < Nav . Item hasBrandmark /> ) ;
7285
7386 expect ( container . firstChild ) . toHaveStyleRule ( 'opacity' , '0.3' ) ;
7487 } ) ;
7588
7689 it ( 'renders correct opacity if used as logo' , ( ) => {
77- const { container } = render ( < NavItem hasLogo /> ) ;
90+ const { container } = render ( < Nav . Item hasLogo /> ) ;
7891
7992 expect ( container . firstChild ) . toHaveStyleRule ( 'opacity' , '1' ) ;
8093 } ) ;
8194
8295 it ( 'renders correct opacity if current' , ( ) => {
83- const { container } = render ( < NavItem isCurrent /> ) ;
96+ const { getByTestId } = render (
97+ < Nav . List >
98+ < Nav . Item isCurrent data-test-id = "item" />
99+ </ Nav . List >
100+ ) ;
84101
85- expect ( container . firstChild ) . toHaveStyleRule ( 'opacity' , '1' ) ;
102+ expect ( getByTestId ( 'item' ) ) . toHaveStyleRule ( 'opacity' , '1' ) ;
86103 } ) ;
87104 } ) ;
88105
89106 describe ( 'Hover Color' , ( ) => {
90107 it ( 'renders correct color with dark hue' , ( ) => {
91- const { container } = render (
108+ const { getByTestId } = render (
92109 < Chrome hue = "black" >
93- < NavItem />
110+ < Nav . List >
111+ < Nav . Item data-test-id = "item" />
112+ </ Nav . List >
94113 </ Chrome >
95114 ) ;
96115
97- expect ( container . firstChild ! . firstChild ) . toHaveStyleRule (
98- 'background-color' ,
99- 'rgba(0,0,0,0.1)' ,
100- {
101- modifier : '&:hover'
102- }
103- ) ;
116+ expect ( getByTestId ( 'item' ) ) . toHaveStyleRule ( 'background-color' , 'rgba(0,0,0,0.1)' , {
117+ modifier : '&:hover'
118+ } ) ;
104119 } ) ;
105120
106121 it ( 'renders correct color with light hue' , ( ) => {
107- const { container } = render (
122+ const { getByTestId } = render (
108123 < Chrome hue = "white" >
109- < NavItem />
124+ < Nav . List >
125+ < Nav . Item data-test-id = "item" />
126+ </ Nav . List >
110127 </ Chrome >
111128 ) ;
112129
113- expect ( container . firstChild ! . firstChild ) . toHaveStyleRule (
114- 'background-color' ,
115- 'rgba(255,255,255,0.1)' ,
116- {
117- modifier : '&:hover'
118- }
119- ) ;
130+ expect ( getByTestId ( 'item' ) ) . toHaveStyleRule ( 'background-color' , 'rgba(255,255,255,0.1)' , {
131+ modifier : '&:hover'
132+ } ) ;
120133 } ) ;
121134 } ) ;
122135
123136 describe ( 'Current Color' , ( ) => {
124137 it ( 'renders correct color by default' , ( ) => {
125- const { container } = render (
138+ const { getByTestId } = render (
126139 < Chrome >
127- < NavItem isCurrent />
140+ < Nav . List >
141+ < Nav . Item isCurrent data-test-id = "item" />
142+ </ Nav . List >
128143 </ Chrome >
129144 ) ;
130145
131- expect ( container . firstChild ! . firstChild ) . toHaveStyleRule (
146+ expect ( getByTestId ( 'item' ) ) . toHaveStyleRule (
132147 'background-color' ,
133148 getColorV8 ( 'chromeHue' , 500 , DEFAULT_THEME )
134149 ) ;
135150 } ) ;
136151
137152 it ( 'renders correct color with dark hue' , ( ) => {
138- const { container } = render (
153+ const { getByTestId } = render (
139154 < Chrome hue = "black" >
140- < NavItem isCurrent />
155+ < Nav . List >
156+ < Nav . Item isCurrent data-test-id = "item" />
157+ </ Nav . List >
141158 </ Chrome >
142159 ) ;
143160
144- expect ( container . firstChild ! . firstChild ) . toHaveStyleRule (
145- 'background-color' ,
146- 'rgba(255,255,255,0.4)'
147- ) ;
161+ expect ( getByTestId ( 'item' ) ) . toHaveStyleRule ( 'background-color' , 'rgba(255,255,255,0.4)' ) ;
148162 } ) ;
149163
150164 it ( 'renders correct color with light hue' , ( ) => {
151- const { container } = render (
165+ const { getByTestId } = render (
152166 < Chrome hue = "white" >
153- < NavItem isCurrent />
167+ < Nav . List >
168+ < Nav . Item isCurrent data-test-id = "item" />
169+ </ Nav . List >
154170 </ Chrome >
155171 ) ;
156172
157- expect ( container . firstChild ! . firstChild ) . toHaveStyleRule (
158- 'background-color' ,
159- 'rgba(0,0,0,0.4)'
160- ) ;
173+ expect ( getByTestId ( 'item' ) ) . toHaveStyleRule ( 'background-color' , 'rgba(0,0,0,0.4)' ) ;
161174 } ) ;
162175 } ) ;
163176
@@ -174,14 +187,14 @@ describe('NavItem', () => {
174187
175188 it ( 'renders correct product color if provided' , ( ) => {
176189 PRODUCTS . forEach ( product => {
177- const { container } = render ( < NavItem hasLogo product = { product } /> ) ;
190+ const { container } = render ( < Nav . Item hasLogo product = { product } /> ) ;
178191
179192 expect ( container . firstChild ) . toHaveStyleRule ( 'color' , VALID_COLOR_MAP [ product ] ) ;
180193 } ) ;
181194 } ) ;
182195
183196 it ( 'renders correct color if no product is provided' , ( ) => {
184- const { container } = render ( < NavItem hasLogo /> ) ;
197+ const { container } = render ( < Nav . Item hasLogo /> ) ;
185198
186199 expect ( container . firstChild ) . toHaveStyleRule ( 'color' , 'inherit' ) ;
187200 } ) ;
0 commit comments