@@ -1443,54 +1443,84 @@ describe('toolbar mode only features', () => {
1443
1443
} )
1444
1444
) ;
1445
1445
} ) ;
1446
- } ) ;
1447
1446
1448
- test ( 'only one drawer could be in expanded mode. all other panels should be closed' , async ( ) => {
1449
- const drawerId1 = 'global-drawer1' ;
1450
- const drawerId2 = 'global-drawer2' ;
1451
- const drawerId3Local = 'local-drawer' ;
1452
- awsuiPlugins . appLayout . registerDrawer ( {
1453
- ...drawerDefaults ,
1454
- id : drawerId1 ,
1455
- type : 'global' ,
1456
- isExpandable : true ,
1457
- } ) ;
1458
- awsuiPlugins . appLayout . registerDrawer ( {
1459
- ...drawerDefaults ,
1460
- id : drawerId2 ,
1461
- type : 'global' ,
1462
- isExpandable : true ,
1463
- } ) ;
1464
- awsuiPlugins . appLayout . registerDrawer ( {
1465
- ...drawerDefaults ,
1466
- id : drawerId3Local ,
1467
- } ) ;
1468
- const { wrapper, globalDrawersWrapper } = await renderComponent (
1469
- < AppLayout navigationOpen = { true } navigation = { < div > nav</ div > } />
1470
- ) ;
1447
+ test ( 'only one drawer could be in expanded mode. all other panels should be closed' , async ( ) => {
1448
+ const drawerId1 = 'global-drawer1' ;
1449
+ const drawerId2 = 'global-drawer2' ;
1450
+ const drawerId3Local = 'local-drawer' ;
1451
+ awsuiPlugins . appLayout . registerDrawer ( {
1452
+ ...drawerDefaults ,
1453
+ id : drawerId1 ,
1454
+ type : 'global' ,
1455
+ isExpandable : true ,
1456
+ } ) ;
1457
+ awsuiPlugins . appLayout . registerDrawer ( {
1458
+ ...drawerDefaults ,
1459
+ id : drawerId2 ,
1460
+ type,
1461
+ isExpandable : true ,
1462
+ } ) ;
1463
+ awsuiPlugins . appLayout . registerDrawer ( {
1464
+ ...drawerDefaults ,
1465
+ id : drawerId3Local ,
1466
+ } ) ;
1467
+ const renderProps = await renderComponent ( < AppLayout navigationOpen = { true } navigation = { < div > nav</ div > } /> ) ;
1468
+ const { wrapper, globalDrawersWrapper } = renderProps ;
1471
1469
1472
- await delay ( ) ;
1470
+ await delay ( ) ;
1473
1471
1474
- wrapper . findDrawerTriggerById ( drawerId1 ) ! . click ( ) ;
1475
- wrapper . findDrawerTriggerById ( drawerId2 ) ! . click ( ) ;
1476
- wrapper . findDrawerTriggerById ( drawerId3Local ) ! . click ( ) ;
1472
+ wrapper . findDrawerTriggerById ( drawerId1 ) ! . click ( ) ;
1473
+ findDrawerTriggerById ( drawerId2 , renderProps ) ! . click ( ) ;
1474
+ wrapper . findDrawerTriggerById ( drawerId3Local ) ! . click ( ) ;
1477
1475
1478
- expect ( wrapper . findDrawerTriggerById ( drawerId1 ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1479
- expect ( wrapper . findDrawerTriggerById ( drawerId2 ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1480
- expect ( wrapper . findDrawerTriggerById ( drawerId3Local ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1481
- expect ( wrapper . findNavigationToggle ( ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1482
- expect ( globalDrawersWrapper . isLayoutInDrawerExpandedMode ( ) ) . toBe ( false ) ;
1483
- expect ( globalDrawersWrapper . findDrawerById ( drawerId1 ) ! . isDrawerInExpandedMode ( ) ) . toBe ( false ) ;
1476
+ expect ( wrapper . findDrawerTriggerById ( drawerId1 ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1477
+ // because the trigger button for the AI drawer gets hidden when it's expanded
1478
+ if ( type === 'global' ) {
1479
+ expect ( wrapper . findDrawerTriggerById ( drawerId2 ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1480
+ }
1481
+ expect ( wrapper . findDrawerTriggerById ( drawerId3Local ) ! . getElement ( ) ) . toHaveClass (
1482
+ toolbarTriggerStyles . selected
1483
+ ) ;
1484
+ expect ( wrapper . findNavigationToggle ( ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1485
+ expect ( globalDrawersWrapper . isLayoutInDrawerExpandedMode ( ) ) . toBe ( false ) ;
1486
+ expect ( globalDrawersWrapper . findDrawerById ( drawerId1 ) ! . isDrawerInExpandedMode ( ) ) . toBe ( false ) ;
1484
1487
1485
- globalDrawersWrapper . findExpandedModeButtonByActiveDrawerId ( drawerId1 ) ! . click ( ) ;
1488
+ globalDrawersWrapper . findExpandedModeButtonByActiveDrawerId ( drawerId1 ) ! . click ( ) ;
1486
1489
1487
- expect ( globalDrawersWrapper . findDrawerById ( drawerId1 ) ! . isDrawerInExpandedMode ( ) ) . toBe ( true ) ;
1488
- expect ( wrapper . findDrawerTriggerById ( drawerId1 ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1489
- expect ( wrapper . findDrawerTriggerById ( drawerId2 ) ! . getElement ( ) ) . not . toHaveClass ( toolbarTriggerStyles . selected ) ;
1490
- expect ( wrapper . findDrawerTriggerById ( drawerId3Local ) ! . getElement ( ) ) . not . toHaveClass (
1491
- toolbarTriggerStyles . selected
1492
- ) ;
1493
- expect ( wrapper . findNavigationToggle ( ) ! . getElement ( ) ) . not . toHaveClass ( toolbarTriggerStyles . selected ) ;
1490
+ expect ( globalDrawersWrapper . findDrawerById ( drawerId1 ) ! . isDrawerInExpandedMode ( ) ) . toBe ( true ) ;
1491
+ expect ( wrapper . findDrawerTriggerById ( drawerId1 ) ! . getElement ( ) ) . toHaveClass ( toolbarTriggerStyles . selected ) ;
1492
+ // because the trigger button for the AI drawer gets hidden when it's expanded
1493
+ if ( type === 'global' ) {
1494
+ expect ( wrapper . findDrawerTriggerById ( drawerId2 ) ! . getElement ( ) ) . not . toHaveClass (
1495
+ toolbarTriggerStyles . selected
1496
+ ) ;
1497
+ }
1498
+ expect ( wrapper . findDrawerTriggerById ( drawerId3Local ) ! . getElement ( ) ) . not . toHaveClass (
1499
+ toolbarTriggerStyles . selected
1500
+ ) ;
1501
+ expect ( wrapper . findNavigationToggle ( ) ! . getElement ( ) ) . not . toHaveClass ( toolbarTriggerStyles . selected ) ;
1502
+ } ) ;
1503
+
1504
+ test ( 'should quit expanded mode when a drawer in expanded mode is closed' , async ( ) => {
1505
+ const drawerId = 'global-drawer' ;
1506
+ awsuiPlugins . appLayout . registerDrawer ( {
1507
+ ...drawerDefaults ,
1508
+ id : drawerId ,
1509
+ type,
1510
+ isExpandable : true ,
1511
+ } ) ;
1512
+ const renderProps = await renderComponent ( < AppLayout /> ) ;
1513
+ const { globalDrawersWrapper } = renderProps ;
1514
+
1515
+ await delay ( ) ;
1516
+
1517
+ findDrawerTriggerById ( drawerId , renderProps ) ! . click ( ) ;
1518
+ globalDrawersWrapper . findExpandedModeButtonByActiveDrawerId ( drawerId ) ! . click ( ) ;
1519
+ expect ( globalDrawersWrapper . findDrawerById ( drawerId ) ! . isDrawerInExpandedMode ( ) ) . toBe ( true ) ;
1520
+ expect ( globalDrawersWrapper . isLayoutInDrawerExpandedMode ( ) ) . toBe ( true ) ;
1521
+ globalDrawersWrapper . findCloseButtonByActiveDrawerId ( drawerId ) ! . click ( ) ;
1522
+ expect ( globalDrawersWrapper . isLayoutInDrawerExpandedMode ( ) ) . toBe ( false ) ;
1523
+ } ) ;
1494
1524
} ) ;
1495
1525
1496
1526
test . each ( [ 'expanded' , 'split-panel' , 'global-drawer' , 'local-drawer' , 'nav' ] as const ) (
@@ -1637,26 +1667,6 @@ describe('toolbar mode only features', () => {
1637
1667
expect ( globalDrawersWrapper . findDrawerById ( drawerId1 ) ! . isDrawerInExpandedMode ( ) ) . toBe ( false ) ;
1638
1668
} ) ;
1639
1669
1640
- test ( 'should quit expanded mode when a drawer in expanded mode is closed' , async ( ) => {
1641
- const drawerId = 'global-drawer' ;
1642
- awsuiPlugins . appLayout . registerDrawer ( {
1643
- ...drawerDefaults ,
1644
- id : drawerId ,
1645
- type : 'global' ,
1646
- isExpandable : true ,
1647
- } ) ;
1648
- const { wrapper, globalDrawersWrapper } = await renderComponent ( < AppLayout /> ) ;
1649
-
1650
- await delay ( ) ;
1651
-
1652
- wrapper . findDrawerTriggerById ( drawerId ) ! . click ( ) ;
1653
- globalDrawersWrapper . findExpandedModeButtonByActiveDrawerId ( drawerId ) ! . click ( ) ;
1654
- expect ( globalDrawersWrapper . findDrawerById ( drawerId ) ! . isDrawerInExpandedMode ( ) ) . toBe ( true ) ;
1655
- expect ( globalDrawersWrapper . isLayoutInDrawerExpandedMode ( ) ) . toBe ( true ) ;
1656
- wrapper . findDrawerTriggerById ( drawerId ) ! . click ( ) ;
1657
- expect ( globalDrawersWrapper . isLayoutInDrawerExpandedMode ( ) ) . toBe ( false ) ;
1658
- } ) ;
1659
-
1660
1670
describe ( 'nested app layouts' , ( ) => {
1661
1671
test ( 'should apply expanded drawer mode only for inner AppLayout and hide nav for the outer AppLayout' , async ( ) => {
1662
1672
const drawerId = 'global-drawer' ;
0 commit comments