Skip to content

Commit 71fb963

Browse files
committed
chore: Expanded mode test closing scenario
1 parent 073906c commit 71fb963

File tree

1 file changed

+72
-62
lines changed

1 file changed

+72
-62
lines changed

src/app-layout/__tests__/runtime-drawers.test.tsx

Lines changed: 72 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1443,54 +1443,84 @@ describe('toolbar mode only features', () => {
14431443
})
14441444
);
14451445
});
1446-
});
14471446

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;
14711469

1472-
await delay();
1470+
await delay();
14731471

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();
14771475

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);
14841487

1485-
globalDrawersWrapper.findExpandedModeButtonByActiveDrawerId(drawerId1)!.click();
1488+
globalDrawersWrapper.findExpandedModeButtonByActiveDrawerId(drawerId1)!.click();
14861489

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+
});
14941524
});
14951525

14961526
test.each(['expanded', 'split-panel', 'global-drawer', 'local-drawer', 'nav'] as const)(
@@ -1637,26 +1667,6 @@ describe('toolbar mode only features', () => {
16371667
expect(globalDrawersWrapper.findDrawerById(drawerId1)!.isDrawerInExpandedMode()).toBe(false);
16381668
});
16391669

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-
16601670
describe('nested app layouts', () => {
16611671
test('should apply expanded drawer mode only for inner AppLayout and hide nav for the outer AppLayout', async () => {
16621672
const drawerId = 'global-drawer';

0 commit comments

Comments
 (0)