@@ -1117,6 +1117,54 @@ describe('toolbar mode only features', () => {
1117
1117
globalDrawersWrapper . findCloseButtonByActiveDrawerId ( 'global-drawer-1' ) ! . click ( ) ;
1118
1118
expect ( onVisibilityChangeMock ) . toHaveBeenCalledWith ( false ) ;
1119
1119
} ) ;
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
+ } ) ;
1120
1168
} ) ;
1121
1169
1122
1170
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', () => {
1197
1245
expect ( getByTestId ( 'trigger-button' ) ) . toHaveFocus ( ) ;
1198
1246
} ) ;
1199
1247
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
-
1218
1248
test ( 'should not render a trigger button if registered drawer does not have a trigger prop' , async ( ) => {
1219
1249
awsuiPlugins . appLayout . registerDrawer ( { ...drawerDefaults , trigger : undefined } ) ;
1220
1250
@@ -1229,36 +1259,6 @@ describe('toolbar mode only features', () => {
1229
1259
expect ( wrapper . findActiveDrawer ( ) ! . getElement ( ) ) . toHaveTextContent ( 'runtime drawer content' ) ;
1230
1260
} ) ;
1231
1261
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
-
1262
1262
test . each ( [ true , false ] as const ) (
1263
1263
'calls onToggle handler by calling openDrawer and closeDrawer plugin api (global runtime drawers) initiatedByUserAction = %s' ,
1264
1264
async initiatedByUserAction => {
0 commit comments