From c7a466b674f37d6badfec140147aedc007dd119c Mon Sep 17 00:00:00 2001 From: Ashish Gupta Date: Mon, 21 Oct 2024 18:23:27 +0530 Subject: [PATCH] fix user and activityFeed flaky playwright test (#18324) --- .../e2e/Features/ActivityFeed.spec.ts | 4 ++++ .../resources/ui/playwright/utils/user.ts | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts index 5bfe3076a09..57578ef22ea 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Features/ActivityFeed.spec.ts @@ -845,6 +845,10 @@ base.describe('Activity feed with Data Consumer User', () => { page2.locator('[data-testid="edit-accept-task-dropdown"]') ).not.toBeVisible(); + await page2.waitForSelector('.ant-skeleton-element', { + state: 'detached', + }); + const tagsSuggestionResponse = page2.waitForResponse( '/api/v1/search/query?q=***' ); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/user.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/user.ts index fe4930dce8c..2d22236ce96 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/user.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/user.ts @@ -361,6 +361,9 @@ export const softDeleteUser = async ( await toastNotification(page, `"${displayName}" deleted successfully!`); + // Wait for the loader to disappear + await page.waitForSelector('[data-testid="loader"]', { state: 'hidden' }); + // Search soft deleted user in non-deleted mode const searchSoftDeletedUserResponse = page.waitForResponse( '/api/v1/search/query*' @@ -382,7 +385,14 @@ export const restoreUser = async ( editedUserName: string ) => { // Click on deleted user toggle + const fetchDeletedUsers = page.waitForResponse( + '/api/v1/users?**include=deleted' + ); await page.click('[data-testid="show-deleted"]'); + await fetchDeletedUsers; + + // Wait for the loader to disappear + await page.waitForSelector('[data-testid="loader"]', { state: 'hidden' }); const searchUsers = page.waitForResponse('/api/v1/search/query*'); await page.fill('[data-testid="searchbar"]', username); @@ -414,7 +424,14 @@ export const permanentDeleteUser = async ( ) => { if (isUserSoftDeleted) { // Click on deleted user toggle to off it + const fetchDeletedUsers = page.waitForResponse( + '/api/v1/users?**include=non-deleted' + ); await page.click('[data-testid="show-deleted"]'); + await fetchDeletedUsers; + + // Wait for the loader to disappear + await page.waitForSelector('[data-testid="loader"]', { state: 'hidden' }); } // Search the user @@ -429,14 +446,21 @@ export const permanentDeleteUser = async ( await page.click('[data-testid="hard-delete"]'); await page.fill('[data-testid="confirmation-text-input"]', 'DELETE'); + const reFetchUsers = page.waitForResponse( + '/api/v1/users?**include=non-deleted' + ); const hardDeleteUserResponse = page.waitForResponse( 'api/v1/users/*?hardDelete=true&recursive=false' ); await page.click('[data-testid="confirm-button"]'); await hardDeleteUserResponse; + await reFetchUsers; await toastNotification(page, `"${displayName}" deleted successfully!`); + // Wait for the loader to disappear + await page.waitForSelector('[data-testid="loader"]', { state: 'hidden' }); + // Search the user again const searchUserAfterDeleteResponse = page.waitForResponse( '/api/v1/search/query*'