diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts index 3c11ace51ef..06238acdab7 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/Tour.spec.ts @@ -14,6 +14,7 @@ import { expect, Page, test } from '@playwright/test'; import { UserClass } from '../../support/user/UserClass'; import { performAdminLogin } from '../../utils/admin'; import { redirectToHomePage } from '../../utils/common'; +import { waitForAllLoadersToDisappear } from '../../utils/entity'; const user = new UserClass(); @@ -132,6 +133,7 @@ test.describe('Tour should work properly', () => { test('Tour should work from help section', async ({ page }) => { await page.locator('[data-testid="help-icon"]').click(); await page.getByRole('link', { name: 'Tour', exact: true }).click(); + await waitForAllLoadersToDisappear(page); await page.waitForURL('**/tour'); await page.waitForSelector('#feedWidgetData'); @@ -145,6 +147,7 @@ test.describe('Tour should work properly', () => { .locator('.whats-new-alert-close') .click(); await page.getByText('Take a product tour to get started!').click(); + await waitForAllLoadersToDisappear(page); await page.waitForURL('**/tour'); await page.waitForSelector('#feedWidgetData'); @@ -154,6 +157,7 @@ test.describe('Tour should work properly', () => { test('Tour should work from URL directly', async ({ page }) => { await page.goto('/tour'); + await waitForAllLoadersToDisappear(page); await page.waitForURL('**/tour'); await page.waitForSelector('#feedWidgetData'); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts index ec9605edf3c..26972b257b1 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/entity.ts @@ -38,7 +38,7 @@ import { import { searchAndClickOnOption } from './explore'; import { sidebarClick } from './sidebar'; -const waitForAllLoadersToDisappear = async (page: Page) => { +export const waitForAllLoadersToDisappear = async (page: Page) => { for (let attempt = 0; attempt < 3; attempt++) { const allLoaders = page.locator('[data-testid="loader"]'); const count = await allLoaders.count(); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/TourPage/TourPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/TourPage/TourPage.component.tsx index 8551ec4791f..02a7283c28f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/TourPage/TourPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/TourPage/TourPage.component.tsx @@ -41,7 +41,7 @@ const TourPage = () => { updateIsTourOpen(true); let attempts = 0; - const maxAttempts = 10; + const maxAttempts = 60; const waitForElement = () => { const el = document.querySelector('#feedWidgetData');