@@ -236,16 +236,19 @@ test.describe('Persona customize UI tab', async () => {
236236
237237 // Select navigation persona
238238 await userPage . getByTestId ( 'dropdown-profile' ) . click ( ) ;
239+
240+ const personaMenuItem = userPage . getByRole ( 'menuitem' , {
241+ name : navigationPersona . responseData . displayName ,
242+ } ) ;
243+
244+ await expect ( personaMenuItem ) . toBeVisible ( ) ;
245+
239246 const personaDocsStore = userPage . waitForResponse (
240247 `/api/v1/docStore/name/persona.${ getEncodedFqn (
241248 navigationPersona . responseData . fullyQualifiedName ?? ''
242249 ) } *`
243250 ) ;
244- await userPage
245- . getByRole ( 'menuitem' , {
246- name : navigationPersona . responseData . displayName ,
247- } )
248- . click ( ) ;
251+ await personaMenuItem . click ( ) ;
249252 await personaDocsStore ;
250253 await waitForAllLoadersToDisappear ( userPage ) ;
251254 await clickOutside ( userPage ) ;
@@ -319,11 +322,14 @@ test.describe('Persona customize UI tab', async () => {
319322 // Select navigation persona
320323 await redirectToHomePage ( userPage ) ;
321324 await userPage . getByTestId ( 'dropdown-profile' ) . click ( ) ;
322- await userPage
323- . getByRole ( 'menuitem' , {
324- name : navigationPersona . responseData . displayName ,
325- } )
326- . click ( ) ;
325+
326+ const personaMenuItem = userPage . getByRole ( 'menuitem' , {
327+ name : navigationPersona . responseData . displayName ,
328+ } ) ;
329+
330+ await expect ( personaMenuItem ) . toBeVisible ( ) ;
331+
332+ await personaMenuItem . click ( ) ;
327333 await clickOutside ( userPage ) ;
328334 await userPage . waitForTimeout ( 500 ) ;
329335
@@ -419,22 +425,39 @@ test.describe('Persona customization', () => {
419425
420426 await expect ( adminPage . getByRole ( 'dialog' ) ) . toBeVisible ( ) ;
421427
422- await adminPage
428+ const dialogTextbox = adminPage . getByRole ( 'dialog' ) . getByRole ( 'textbox' ) ;
429+ await dialogTextbox . fill ( 'Custom Tab' ) ;
430+
431+ const addButton = adminPage
423432 . getByRole ( 'dialog' )
424- . getByRole ( 'textbox' )
425- . fill ( 'Custom Tab' ) ;
433+ . getByRole ( 'button' , { name : 'Add' } ) ;
434+ await adminPage . waitForTimeout ( 1000 ) ;
435+ await expect ( addButton ) . toBeEnabled ( ) ;
436+ await addButton . click ( ) ;
437+ const addWidgetButton = adminPage . getByTestId ( 'add-widget-button' ) ;
438+
439+ await adminPage . getByRole ( 'dialog' ) . waitFor ( { state : 'hidden' } ) ;
440+ await adminPage . locator ( '.ant-modal-wrap' ) . waitFor ( { state : 'detached' } ) ;
441+ await expect ( addWidgetButton ) . toBeEnabled ( ) ;
442+ await addWidgetButton . click ( ) ;
443+ // small timeout to render popup
444+ await adminPage . waitForTimeout ( 500 )
445+ await adminPage
446+ . getByTestId ( 'widget-info-tabs' )
447+ . waitFor ( { state : 'visible' } ) ;
426448
427449 await adminPage
428- . getByRole ( 'dialog ')
429- . getByRole ( 'button' , { name : 'Add' } )
450+ . getByTestId ( 'add-widget-modal ')
451+ . getByTestId ( 'Description-widget' )
430452 . click ( ) ;
431-
432- await adminPage . getByTestId ( 'add-widget-button' ) . click ( ) ;
433- await adminPage . getByTestId ( 'Description-widget' ) . click ( ) ;
434453 await adminPage
435454 . getByTestId ( 'add-widget-modal' )
436455 . getByTestId ( 'add-widget-button' )
437456 . click ( ) ;
457+
458+ await adminPage
459+ . getByTestId ( 'widget-info-tabs' )
460+ . waitFor ( { state : 'hidden' } ) ;
438461 await adminPage . getByTestId ( 'save-button' ) . click ( ) ;
439462
440463 await toastNotification (
@@ -544,21 +567,40 @@ test.describe('Persona customization', () => {
544567
545568 await expect ( adminPage . getByRole ( 'dialog' ) ) . toBeVisible ( ) ;
546569
547- await adminPage
570+ const dialogTextbox = adminPage . getByRole ( 'dialog' ) . getByRole ( 'textbox' ) ;
571+ await dialogTextbox . fill ( 'Custom Tab' ) ;
572+
573+ const addButton = adminPage
548574 . getByRole ( 'dialog' )
549- . getByRole ( 'textbox' )
550- . fill ( 'Custom Tab' ) ;
575+ . getByRole ( 'button' , { name : 'Add' } ) ;
576+ // button was not stable
577+ await adminPage . waitForTimeout ( 500 ) ;
578+ await expect ( addButton ) . toBeEnabled ( ) ;
579+ await addButton . click ( ) ;
580+ const addWidgetButton = adminPage . getByTestId ( 'add-widget-button' ) ;
581+ await adminPage . getByRole ( 'dialog' ) . waitFor ( { state : 'hidden' } ) ;
582+ await adminPage . locator ( '.ant-modal-wrap' ) . waitFor ( { state : 'detached' } ) ;
583+ await expect ( addWidgetButton ) . toBeEnabled ( ) ;
584+
585+ await addWidgetButton . click ( { force :true } ) ;
586+ await adminPage . waitForTimeout ( 500 )
587+ await adminPage
588+ . getByTestId ( 'widget-info-tabs' )
589+ . waitFor ( { state : 'visible' } ) ;
551590
552591 await adminPage
553- . getByRole ( 'dialog ')
554- . getByRole ( 'button' , { name : 'Add' } )
592+ . getByTestId ( 'add-widget-modal ')
593+ . getByTestId ( 'Description-widget' )
555594 . click ( ) ;
556- await adminPage . getByTestId ( 'add-widget-button' ) . click ( ) ;
557- await adminPage . getByTestId ( 'Description-widget' ) . click ( ) ;
558595 await adminPage
559596 . getByTestId ( 'add-widget-modal' )
560597 . getByTestId ( 'add-widget-button' )
561598 . click ( ) ;
599+
600+ await adminPage
601+ . getByTestId ( 'widget-info-tabs' )
602+ . waitFor ( { state : 'hidden' } ) ;
603+
562604 await adminPage . getByTestId ( 'save-button' ) . click ( ) ;
563605
564606 await toastNotification (
0 commit comments