@@ -128,13 +128,26 @@ test('policies nav item is visible when group admin can customize policies even
128128
129129 await createPolicyDialog . getByRole ( 'option' , { name : / ^ G r o u p / } ) . click ( )
130130
131- const targetGroupsField = page . getByLabel ( 'Target groups' )
131+ const targetGroupsField = createPolicyDialog . getByLabel ( 'Target groups' ) . first ( )
132132 await expect ( targetGroupsField ) . toBeVisible ( { timeout : 10000 } )
133- await page . getByPlaceholder ( 'Search groups' ) . fill ( GROUP_ID )
134- await page . getByRole ( 'option' , { name : GROUP_ID } ) . first ( ) . click ( )
133+ await targetGroupsField . click ( )
134+
135+ const searchGroupsInput = createPolicyDialog . getByPlaceholder ( 'Search groups' ) . first ( )
136+ await expect ( searchGroupsInput ) . toBeVisible ( { timeout : 10000 } )
137+ await searchGroupsInput . fill ( GROUP_ID )
138+
139+ const groupOption = createPolicyDialog . getByRole ( 'option' , { name : new RegExp ( `^${ GROUP_ID } $` , 'i' ) } ) . first ( )
140+ const optionWasVisible = await groupOption . waitFor ( { state : 'visible' , timeout : 8000 } ) . then ( ( ) => true ) . catch ( ( ) => false )
141+ if ( optionWasVisible ) {
142+ await groupOption . click ( )
143+ } else {
144+ await searchGroupsInput . press ( 'ArrowDown' )
145+ await searchGroupsInput . press ( 'Enter' )
146+ }
147+ await searchGroupsInput . press ( 'Tab' ) . catch ( ( ) => { } )
135148
136149 await Promise . any ( [
137150 createPolicyDialog . getByRole ( 'option' , { name : / ^ G r o u p / } ) . waitFor ( { state : 'visible' , timeout : 10000 } ) ,
138- page . getByLabel ( 'Target groups' ) . waitFor ( { state : 'visible' , timeout : 10000 } ) ,
151+ createPolicyDialog . getByLabel ( 'Target groups' ) . waitFor ( { state : 'visible' , timeout : 10000 } ) ,
139152 ] )
140153} )
0 commit comments