@@ -11,6 +11,19 @@ import createWrapper, { BreadcrumbGroupWrapper, ElementWrapper } from '../../../
11
11
import itemStyles from '../../../lib/components/breadcrumb-group/item/styles.css.js' ;
12
12
import styles from '../../../lib/components/breadcrumb-group/styles.css.js' ;
13
13
14
+ let mockMobileViewport = false ;
15
+ jest . mock ( '@cloudscape-design/component-toolkit' , ( ) => {
16
+ const actualUseContainerQuery = jest . requireActual ( '@cloudscape-design/component-toolkit' ) ;
17
+ return {
18
+ ...actualUseContainerQuery ,
19
+ useContainerQuery : ( arg : any ) =>
20
+ mockMobileViewport ? [ 10 , ( ) => { } ] : actualUseContainerQuery . useContainerQuery ( arg ) ,
21
+ } ;
22
+ } ) ;
23
+ afterEach ( ( ) => {
24
+ mockMobileViewport = false ;
25
+ } ) ;
26
+
14
27
const renderBreadcrumbGroup = ( props : BreadcrumbGroupProps ) => {
15
28
const renderResult = render ( < BreadcrumbGroup { ...props } /> ) ;
16
29
return createWrapper ( renderResult . container ) . findBreadcrumbGroup ( ) ! ;
@@ -123,7 +136,8 @@ describe('BreadcrumbGroup Component', () => {
123
136
} ) ;
124
137
} ) ;
125
138
126
- test ( 'supports extended items object' , ( ) => {
139
+ test . each ( [ [ true ] , [ false ] ] ) ( 'supports extended items object (mobile: %p)' , mobile => {
140
+ mockMobileViewport = mobile ;
127
141
interface ExtendedItem extends BreadcrumbGroupProps . Item {
128
142
metadata : number ;
129
143
}
@@ -143,7 +157,13 @@ describe('BreadcrumbGroup Component', () => {
143
157
/>
144
158
) ;
145
159
const wrapper = createWrapper ( container ) . findBreadcrumbGroup ( ) ! ;
146
- wrapper . findBreadcrumbLink ( 2 ) ! . click ( ) ;
160
+ if ( mobile ) {
161
+ const dropdown = wrapper . findDropdown ( ) ! ;
162
+ dropdown . openDropdown ( ) ;
163
+ dropdown . findItems ( ) [ 1 ] . click ( ) ;
164
+ } else {
165
+ wrapper . findBreadcrumbLink ( 2 ) ! . click ( ) ;
166
+ }
147
167
expect ( onClick ) . toHaveBeenCalledWith ( items [ 1 ] ) ;
148
168
} ) ;
149
169
@@ -233,7 +253,10 @@ describe('BreadcrumbGroup Component', () => {
233
253
} ) ;
234
254
} ) ;
235
255
236
- describe ( 'funnel attributes' , ( ) => {
256
+ describe . each ( [ [ true ] , [ false ] ] ) ( 'funnel attributes (mobile: %p)' , mobile => {
257
+ beforeEach ( ( ) => {
258
+ mockMobileViewport = mobile ;
259
+ } ) ;
237
260
function getElementsText ( elements : Array < ElementWrapper > ) {
238
261
return Array . from ( elements ) . map ( element => element . getElement ( ) . textContent ) ;
239
262
}
0 commit comments