From 2e134b2cfe02ea826d4814b1d42f8a15dd0a2f26 Mon Sep 17 00:00:00 2001 From: Shailesh Parmar Date: Sat, 13 Sep 2025 09:38:05 +0530 Subject: [PATCH] playwright: fixed incident manager flaky test (#23367) * playwright: fixed incident manager flaky test * revert change --- .../e2e/Features/IncidentManager.spec.ts | 14 ++++++++++++++ .../ui/playwright/utils/incidentManager.ts | 13 ++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts index a9b671f48b3..42d130a8fbb 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/IncidentManager.spec.ts @@ -135,8 +135,22 @@ test.describe('Incident Manager', PLAYWRIGHT_INGESTION_TAG_OBJ, () => { ); await page.click('[data-testid="incident"]'); await incidentDetails; + await page.waitForSelector('[data-testid="loader"]', { + state: 'detached', + }); + + await page.waitForSelector('.ant-skeleton-content', { + state: 'detached', + }); + + await page.locator('role=button[name="down"]').scrollIntoViewIfNeeded(); + await page.waitForSelector('role=button[name="down"]', { + state: 'visible', + }); await page.getByRole('button', { name: 'down' }).click(); + // there is no API call to wait for here, so adding a small timeout + await page.waitForTimeout(1000); await page.waitForSelector('role=menuitem[name="Reassign"]', { state: 'visible', }); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/incidentManager.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/incidentManager.ts index 88781ec1edf..fb756cadbff 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/incidentManager.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/incidentManager.ts @@ -67,11 +67,22 @@ export const assignIncident = async (data: { await page.click('[data-testid="test-case-resolution-status-type"]'); await page.click('[title="Assigned"]'); await page.waitForSelector('#testCaseResolutionStatusDetails_assignee'); + await page.click('#testCaseResolutionStatusDetails_assignee'); + await page + .locator( + '.ant-select-dropdown #testCaseResolutionStatusDetails_assignee_list + .rc-virtual-list' + ) + .waitFor({ state: 'visible' }); + await page.waitForLoadState('networkidle'); + + const searchUserResponse = page.waitForResponse( + 'api/v1/search/query?q=*&index=user_search_index*' + ); await page.fill( '#testCaseResolutionStatusDetails_assignee', user.displayName ); - await page.waitForResponse('/api/v1/search/query?q=*'); + await searchUserResponse; await page.click(`[data-testid="${user.name.toLocaleLowerCase()}"]`); const updateIncident = page.waitForResponse( '/api/v1/dataQuality/testCases/testCaseIncidentStatus'