@@ -207,6 +207,25 @@ describe('FlatTree', () => {
207
207
cy . document ( ) . realPress ( 'Tab' ) ;
208
208
cy . get ( '#action' ) . should ( 'be.focused' ) ;
209
209
} ) ;
210
+ describe ( 'navigationMode="treegrid"' , ( ) => {
211
+ it ( 'should focus on actions/treeitem when pressing right/left arrow' , ( ) => {
212
+ mount (
213
+ < TreeTest openItems = { [ 'item1' ] } navigationMode = "treegrid" id = "tree" aria-label = "Tree" >
214
+ < TreeItem itemType = "branch" value = "item1" data-testid = "item1" >
215
+ < TreeItemLayout actions = { < Button id = "action" > action</ Button > } > level 1, item 1</ TreeItemLayout >
216
+ < Tree >
217
+ < TreeItem itemType = "leaf" value = "item1__item1" data-testid = "item1__item1" >
218
+ < TreeItemLayout > level 2, item 1</ TreeItemLayout >
219
+ </ TreeItem >
220
+ </ Tree >
221
+ </ TreeItem >
222
+ </ TreeTest > ,
223
+ ) ;
224
+ cy . get ( '[data-testid="item1"]' ) . focus ( ) . realPress ( '{rightarrow}' ) ;
225
+ cy . get ( '#action' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) ;
226
+ cy . get ( '[data-testid="item1"]' ) . should ( 'be.focused' ) ;
227
+ } ) ;
228
+ } ) ;
210
229
it ( 'should not expand/collapse item on actions Enter/Space key' , ( ) => {
211
230
mount (
212
231
< TreeTest id = "tree" aria-label = "Tree" >
@@ -250,25 +269,50 @@ describe('FlatTree', () => {
250
269
cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) ;
251
270
cy . focused ( ) . realPress ( 'Tab' ) . should ( 'not.exist' ) ;
252
271
} ) ;
253
- it ( 'should move with Left/Right keys' , ( ) => {
254
- mount ( < TreeTest defaultOpenItems = { [ 'item2' , 'item2__item1' ] } /> ) ;
255
- cy . get ( '[data-testid="item1"]' ) . focus ( ) . realPress ( '{downarrow}' ) ;
256
- cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) . realPress ( '{rightarrow}' ) ;
257
- cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{rightarrow}' ) ;
258
- cy . get ( '[data-testid="item2__item1__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) ;
259
- cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) . realPress ( '{leftarrow}' ) ;
260
- cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) ;
261
- } ) ;
262
- it ( 'should not move with Alt + Left/Right keys' , ( ) => {
263
- mount ( < TreeTest defaultOpenItems = { [ 'item2' , 'item2__item1' ] } /> ) ;
264
- cy . get ( '[data-testid="item1"]' ) . focus ( ) . realPress ( '{downarrow}' ) ;
265
- cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) . realPress ( [ 'Alt' , '{rightarrow}' ] ) ;
266
- cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) . realPress ( '{rightarrow}' ) ;
267
- cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{rightarrow}' ) ;
268
- cy . get ( '[data-testid="item2__item1__item1"]' ) . should ( 'be.focused' ) . realPress ( [ 'Alt' , '{leftarrow}' ] ) ;
269
- cy . get ( '[data-testid="item2__item1__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) ;
270
- cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) . realPress ( '{leftarrow}' ) ;
271
- cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) ;
272
+ describe ( 'navigationMode="treegrid"' , ( ) => {
273
+ it ( 'should move with Up/Down keys' , ( ) => {
274
+ mount (
275
+ < TreeTest openItems = { [ 'item1' ] } navigationMode = "treegrid" id = "tree" aria-label = "Tree" >
276
+ < TreeItem itemType = "branch" value = "item1" data-testid = "item1" >
277
+ < TreeItemLayout > level 1, item 1</ TreeItemLayout >
278
+ < Tree >
279
+ < TreeItem itemType = "leaf" value = "item1__item1" data-testid = "item1__item1" >
280
+ < TreeItemLayout actions = { < Button id = "action" > action</ Button > } > level 2, item 1</ TreeItemLayout >
281
+ </ TreeItem >
282
+ < TreeItem itemType = "leaf" value = "item1__item2" data-testid = "item1__item2" >
283
+ < TreeItemLayout > level 2, item 2</ TreeItemLayout >
284
+ </ TreeItem >
285
+ </ Tree >
286
+ </ TreeItem >
287
+ </ TreeTest > ,
288
+ ) ;
289
+ cy . get ( '[data-testid="item1__item1"]' ) . focus ( ) . realPress ( '{rightarrow}' ) ;
290
+ cy . get ( '#action' ) . should ( 'be.focused' ) . realPress ( '{uparrow}' ) ;
291
+ cy . get ( '[data-testid="item1"]' ) . should ( 'be.focused' ) ;
292
+ cy . get ( '[data-testid="item1__item1"]' ) . focus ( ) . realPress ( '{rightarrow}' ) ;
293
+ cy . get ( '#action' ) . should ( 'be.focused' ) . realPress ( '{downarrow}' ) ;
294
+ cy . get ( '[data-testid="item1__item2"]' ) . should ( 'be.focused' ) ;
295
+ } ) ;
296
+ it ( 'should move with Left keys' , ( ) => {
297
+ mount ( < TreeTest navigationMode = "treegrid" defaultOpenItems = { [ 'item2' , 'item2__item1' ] } /> ) ;
298
+ cy . get ( '[data-testid="item1"]' ) . focus ( ) . realPress ( '{downarrow}' ) ;
299
+ cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) . realPress ( '{downarrow}' ) ;
300
+ cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{downarrow}' ) ;
301
+ cy . get ( '[data-testid="item2__item1__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) ;
302
+ cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) . realPress ( '{leftarrow}' ) ;
303
+ cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) ;
304
+ } ) ;
305
+
306
+ it ( 'should not move with Alt + Left keys' , ( ) => {
307
+ mount ( < TreeTest navigationMode = "treegrid" defaultOpenItems = { [ 'item2' , 'item2__item1' ] } /> ) ;
308
+ cy . get ( '[data-testid="item1"]' ) . focus ( ) . realPress ( '{downarrow}' ) ;
309
+ cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) . realPress ( '{downarrow}' ) ;
310
+ cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{downarrow}' ) ;
311
+ cy . get ( '[data-testid="item2__item1__item1"]' ) . should ( 'be.focused' ) . realPress ( [ 'Alt' , '{leftarrow}' ] ) ;
312
+ cy . get ( '[data-testid="item2__item1__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) ;
313
+ cy . get ( '[data-testid="item2__item1"]' ) . should ( 'be.focused' ) . realPress ( '{leftarrow}' ) . realPress ( '{leftarrow}' ) ;
314
+ cy . get ( '[data-testid="item2"]' ) . should ( 'be.focused' ) ;
315
+ } ) ;
272
316
} ) ;
273
317
it ( 'should move to last item with End key' , ( ) => {
274
318
mount ( < TreeTest defaultOpenItems = { [ 'item1' , 'item2' , 'item2__item1' ] } /> ) ;
0 commit comments