Skip to content

Commit 58e643a

Browse files
committed
chore: Reuse more tests
1 parent 8fe24e1 commit 58e643a

File tree

1 file changed

+48
-48
lines changed

1 file changed

+48
-48
lines changed

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

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,54 @@ describe('toolbar mode only features', () => {
11171117
globalDrawersWrapper.findCloseButtonByActiveDrawerId('global-drawer-1')!.click();
11181118
expect(onVisibilityChangeMock).toHaveBeenCalledWith(false);
11191119
});
1120+
1121+
test(`closes a drawer when closeDrawer is called (${type} drawer)`, async () => {
1122+
awsuiPlugins.appLayout.registerDrawer({ ...drawerDefaults, resizable: true, type });
1123+
1124+
const { wrapper } = await renderComponent(<AppLayout drawers={[testDrawer]} />);
1125+
1126+
awsuiPlugins.appLayout.openDrawer('test');
1127+
1128+
await delay();
1129+
1130+
expect(wrapper.findActiveDrawer()!.getElement()).toHaveTextContent('runtime drawer content');
1131+
1132+
awsuiPlugins.appLayout.closeDrawer('test');
1133+
1134+
await delay();
1135+
1136+
expect(wrapper.findActiveDrawer()).toBeFalsy();
1137+
});
1138+
1139+
test('should render trigger buttons for global drawers even if local drawers are not present', async () => {
1140+
const renderProps = await renderComponent(<AppLayout toolsHide={true} />);
1141+
1142+
awsuiPlugins.appLayout.registerDrawer({
1143+
...drawerDefaults,
1144+
id: 'global1',
1145+
type,
1146+
});
1147+
1148+
await delay();
1149+
1150+
expect(findDrawerTriggerById('global1', renderProps)!.getElement()).toBeInTheDocument();
1151+
});
1152+
1153+
test(`calls onToggle handler by clicking on drawers trigger button (${type} runtime drawers)`, async () => {
1154+
const onToggle = jest.fn();
1155+
awsuiPlugins.appLayout.registerDrawer({
1156+
...drawerDefaults,
1157+
id: 'global-drawer',
1158+
type,
1159+
onToggle: event => onToggle(event.detail),
1160+
});
1161+
const renderProps = await renderComponent(<AppLayout />);
1162+
1163+
findDrawerTriggerById('global-drawer', renderProps)!.click();
1164+
expect(onToggle).toHaveBeenCalledWith({ isOpen: true, initiatedByUserAction: true });
1165+
renderProps.globalDrawersWrapper.findCloseButtonByActiveDrawerId('global-drawer')!.click();
1166+
expect(onToggle).toHaveBeenCalledWith({ isOpen: false, initiatedByUserAction: true });
1167+
});
11201168
});
11211169

11221170
test('the order of the opened global drawers should match the positions of their corresponding toggle buttons on the toolbar', async () => {
@@ -1197,24 +1245,6 @@ describe('toolbar mode only features', () => {
11971245
expect(getByTestId('trigger-button')).toHaveFocus();
11981246
});
11991247

1200-
test('closes a drawer when closeDrawer is called (global drawer)', async () => {
1201-
awsuiPlugins.appLayout.registerDrawer({ ...drawerDefaults, resizable: true, type: 'global' });
1202-
1203-
const { wrapper } = await renderComponent(<AppLayout drawers={[testDrawer]} />);
1204-
1205-
awsuiPlugins.appLayout.openDrawer('test');
1206-
1207-
await delay();
1208-
1209-
expect(wrapper.findActiveDrawer()!.getElement()).toHaveTextContent('runtime drawer content');
1210-
1211-
awsuiPlugins.appLayout.closeDrawer('test');
1212-
1213-
await delay();
1214-
1215-
expect(wrapper.findActiveDrawer()).toBeFalsy();
1216-
});
1217-
12181248
test('should not render a trigger button if registered drawer does not have a trigger prop', async () => {
12191249
awsuiPlugins.appLayout.registerDrawer({ ...drawerDefaults, trigger: undefined });
12201250

@@ -1229,36 +1259,6 @@ describe('toolbar mode only features', () => {
12291259
expect(wrapper.findActiveDrawer()!.getElement()).toHaveTextContent('runtime drawer content');
12301260
});
12311261

1232-
test('should render trigger buttons for global drawers even if local drawers are not present', async () => {
1233-
const { wrapper } = await renderComponent(<AppLayout toolsHide={true} />);
1234-
1235-
awsuiPlugins.appLayout.registerDrawer({
1236-
...drawerDefaults,
1237-
id: 'global1',
1238-
type: 'global',
1239-
});
1240-
1241-
await delay();
1242-
1243-
expect(wrapper.findDrawerTriggerById('global1')!.getElement()).toBeInTheDocument();
1244-
});
1245-
1246-
test('calls onToggle handler by clicking on drawers trigger button (global runtime drawers)', async () => {
1247-
const onToggle = jest.fn();
1248-
awsuiPlugins.appLayout.registerDrawer({
1249-
...drawerDefaults,
1250-
id: 'global-drawer',
1251-
type: 'global',
1252-
onToggle: event => onToggle(event.detail),
1253-
});
1254-
const { wrapper } = await renderComponent(<AppLayout />);
1255-
1256-
wrapper.findDrawerTriggerById('global-drawer')!.click();
1257-
expect(onToggle).toHaveBeenCalledWith({ isOpen: true, initiatedByUserAction: true });
1258-
wrapper.findDrawerTriggerById('global-drawer')!.click();
1259-
expect(onToggle).toHaveBeenCalledWith({ isOpen: false, initiatedByUserAction: true });
1260-
});
1261-
12621262
test.each([true, false] as const)(
12631263
'calls onToggle handler by calling openDrawer and closeDrawer plugin api (global runtime drawers) initiatedByUserAction = %s',
12641264
async initiatedByUserAction => {

0 commit comments

Comments
 (0)