From 240c8788aa6dd87d08dd28d82024934d555b7b17 Mon Sep 17 00:00:00 2001 From: Rohit0301 Date: Fri, 16 Oct 2026 17:29:27 +0530 Subject: [PATCH 1/6] fix(playwright): fix markdown preview and KPI Widget locators on Collate - ContextCenterFilePreview: the markdown preview now uses the themed `prose` class (#35357), so assert the heading inside `.prose` - Add openKpiTab helper that clicks the KPIs entry as a link (OpenMetadata) or a menuitem (Collate's overridden Data Insight left panel); use it in CustomizeWidgets and DataInsight specs --- .../ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts | 3 ++- .../ui/playwright/e2e/Pages/DataInsight.spec.ts | 10 +++++----- .../e2e/nightly/ContextCenterFilePreview.spec.ts | 3 +-- .../main/resources/ui/playwright/utils/dataInsight.ts | 10 ++++++++++ 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts index 678673e33c7d..68a8f3e78417 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts @@ -34,6 +34,7 @@ import { addKpi, deleteKpiRequest, deleteSeededKpisOnChart, + openKpiTab, } from '../../utils/dataInsight'; import { waitForAllLoadersToDisappear } from '../../utils/entity'; import { sidebarClick } from '../../utils/sidebar'; @@ -313,7 +314,7 @@ test('KPI Widget', async ({ page, persona, kpiIds }) => { await waitForAllLoadersToDisappear(page); await sidebarClick(page, SidebarItem.DATA_INSIGHT); - await page.getByRole('link', { name: 'KPIs', exact: true }).click(); + await openKpiTab(page); await page.getByTestId('add-kpi-btn').click(); const createdKpi = await addKpi(page, { diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts index 1ad76af496b5..cd45acfe3cf0 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts @@ -18,7 +18,7 @@ import { expect, test } from '../../support/fixtures/isolatedUser'; import { okJson } from '../../utils/apiResponse'; import { createNewPage, redirectToHomePage, uuid } from '../../utils/common'; import { waitForLandingPageWidget } from '../../utils/customizeLandingPage'; -import { addKpi, deleteKpiRequest } from '../../utils/dataInsight'; +import { addKpi, deleteKpiRequest, openKpiTab } from '../../utils/dataInsight'; import { waitForResponseWithStatus } from '../../utils/waitHelpers'; // use the admin user to login @@ -95,7 +95,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { test('Create description and owner KPI', async ({ page }) => { await navigateToDataInsightPage(page); - await page.getByRole('link', { name: 'KPIs', exact: true }).click(); + await openKpiTab(page); for (const data of kpiData) { await page.getByTestId('add-kpi-btn').click(); @@ -257,7 +257,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await percentageOfDataAssetWithDescriptionResponse; await page.getByTestId('date-picker-menu').click(); await page.getByRole('menuitem', { name: 'Last 60 days' }).click(); - await page.getByRole('link', { name: 'KPIs', exact: true }).click(); + await openKpiTab(page); await expect(page.getByTestId('kpi-card')).toBeVisible(); await expect( @@ -289,7 +289,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await latestKPIResponse; await percentageOfDataAssetWithDescriptionResponse; - await page.getByRole('link', { name: 'KPIs', exact: true }).click(); + await openKpiTab(page); for (const data of kpiData) { await page.getByTestId(`edit-action-${data.displayName}`).click(); @@ -356,7 +356,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await latestKPIResponse; await percentageOfDataAssetWithDescriptionResponse; - await page.getByRole('link', { name: 'KPIs', exact: true }).click(); + await openKpiTab(page); for (const data of kpiData) { const kpi = getCreatedKpi(data.displayName); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts index 59d3d2ead895..f4516d0215e5 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts @@ -183,9 +183,8 @@ test.describe('Context Center - Document File Preview', () => { const modal = await openFilePreviewModal(page, row, document.id); await expect( - modal.getByRole('heading', { name: MARKDOWN_HEADING }) + modal.locator('.prose').getByRole('heading', { name: MARKDOWN_HEADING }) ).toBeVisible(); - await expect(modal.locator('[class*="tw:prose"]')).toBeVisible(); }); test('plain text file renders inside a pre block in the preview modal', async ({ diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts index 3fee409cc308..e8403a5f78bf 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts @@ -114,3 +114,13 @@ export const addKpi = async (page: Page, data: KPIData) => { return { ...kpi, id: kpi.id, fullyQualifiedName: kpi.fullyQualifiedName }; }; + +// OpenMetadata renders the Data Insight left panel as links; Collate overrides it with a menu. +export const openKpiTab = async (page: Page) => { + const panel = page.getByTestId('data-insight-left-panel'); + await panel + .getByRole('link', { name: 'KPIs', exact: true }) + .or(panel.getByRole('menuitem', { name: 'KPIs', exact: true })) + .click(); + await page.waitForURL('**/data-insights/kpi'); +}; From c2a149d1a21e93c49d7bab0d61d7e4acbd4befb9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 16 Oct 2026 12:00:51 +0000 Subject: [PATCH 2/6] chore(playwright): auto-refresh impact-map.generated.json --- .github/playwright/impact-map.generated.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/playwright/impact-map.generated.json b/.github/playwright/impact-map.generated.json index 098342271d1b..9220db711969 100644 --- a/.github/playwright/impact-map.generated.json +++ b/.github/playwright/impact-map.generated.json @@ -804,6 +804,7 @@ "playwright/e2e/Features/DataQuality/Profiler.spec.ts", "playwright/e2e/Features/DataQuality/ProfilerIngestionForm.spec.ts", "playwright/e2e/Features/DataQuality/RunTestCase.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseDetailsPage.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseImportExportBasic.spec.ts", @@ -1721,6 +1722,7 @@ "playwright/e2e/Features/DataQuality/ProfilerSettingsAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/RunTestCase.spec.ts", "playwright/e2e/Features/DataQuality/TableLevelTests.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseCrudAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseDetailsPage.spec.ts", @@ -2035,6 +2037,7 @@ "playwright/e2e/Features/DataAssetRulesEnabled.spec.ts", "playwright/e2e/Features/DataQuality/ProfilerIngestionForm.spec.ts", "playwright/e2e/Features/DataQuality/TableLevelTests.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/ExploreQuickFilters.spec.ts", "playwright/e2e/Features/IngestionListNameSorting.spec.ts", "playwright/e2e/Features/LandingPageWidgets/LandingPagePlatformHealth.spec.ts", @@ -3085,6 +3088,7 @@ "playwright/e2e/Features/DataQuality/Profiler.spec.ts", "playwright/e2e/Features/DataQuality/ProfilerIngestionForm.spec.ts", "playwright/e2e/Features/DataQuality/RunTestCase.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseDetailsPage.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseImportExportBasic.spec.ts", @@ -3307,6 +3311,7 @@ "playwright/e2e/Features/AdvancedSearch.spec.ts", "playwright/e2e/Features/ContextCenterDashboard.spec.ts", "playwright/e2e/Features/DataQuality/IncidentManagerSqlQuery.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DomainFilterQueryFilter.spec.ts", "playwright/e2e/Features/LandingPageWidgets/LandingPageContextCenter.spec.ts", "playwright/e2e/Features/LandingPageWidgets/LandingPageCriticalAnnouncements.spec.ts", @@ -3497,6 +3502,7 @@ "playwright/e2e/Features/DataQuality/ProfilerSettingsAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/RunTestCase.spec.ts", "playwright/e2e/Features/DataQuality/TableLevelTests.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseCrudAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseDetailsPage.spec.ts", @@ -4113,6 +4119,7 @@ "playwright/e2e/Features/DataQuality/DataQualityListAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/DataQualityPermissions.spec.ts", "playwright/e2e/Features/DataQuality/IncidentManagerDateFilter.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseDetailsPage.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseImportExportBasic.spec.ts", @@ -4845,6 +4852,7 @@ "playwright/e2e/Features/AIMode/ConnectionServiceDetails.spec.ts", "playwright/e2e/Features/Announcements/SystemAnnouncements.spec.ts", "playwright/e2e/Features/BulkEditEntity.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/OnlineUsers.spec.ts", "playwright/e2e/Features/TestSuitePipelineRedeploy.spec.ts", "playwright/e2e/Pages/AIProfile/ProfileMembers.spec.ts", @@ -5173,6 +5181,7 @@ "playwright/e2e/Features/DataQuality/Profiler.spec.ts", "playwright/e2e/Features/DataQuality/RunTestCase.spec.ts", "playwright/e2e/Features/DataQuality/TableLevelTests.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseCrudAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseDetailsPage.spec.ts", @@ -5281,6 +5290,7 @@ "playwright/e2e/Features/DataQuality/DataQuality.spec.ts", "playwright/e2e/Features/DataQuality/IncidentManagerDateFilter.spec.ts", "playwright/e2e/Features/DataQuality/IncidentManagerSqlQuery.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/EntitySuggestions.spec.ts", "playwright/e2e/Features/FailedTestCaseSampleData.spec.ts", @@ -6794,6 +6804,14 @@ "playwright/e2e/Features/DataQuality/ProfilerSettingsAfterReindex.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/components/Database/Profiler/TableProfiler/QualityTab/QualityTab.component.tsx" + ], + "specs": [ + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/components/Database/Profiler/TestSummary/RunSummaryTiles/RunSummaryTiles.tsx" @@ -12000,6 +12018,7 @@ "playwright/e2e/Features/DataQuality/ProfilerSettingsAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/RunTestCase.spec.ts", "playwright/e2e/Features/DataQuality/TableLevelTests.spec.ts", + "playwright/e2e/Features/DataQuality/TableTestCaseExportFilters.spec.ts", "playwright/e2e/Features/DataQuality/TableTestCasePagination.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseCrudAfterReindex.spec.ts", "playwright/e2e/Features/DataQuality/TestCaseDetailsPage.spec.ts", From a9050a42cac808a8248f8bf7f727bbd5696ff028 Mon Sep 17 00:00:00 2001 From: Rohit0301 Date: Sun, 18 Oct 2026 00:06:47 +0530 Subject: [PATCH 3/6] test(playwright): locate markdown preview by data-testid instead of class --- .../playwright/e2e/nightly/ContextCenterFilePreview.spec.ts | 4 +++- .../src/components/common/FilePreviewer/MarkdownRenderer.tsx | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts index f4516d0215e5..6248d5d2afa0 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/nightly/ContextCenterFilePreview.spec.ts @@ -183,7 +183,9 @@ test.describe('Context Center - Document File Preview', () => { const modal = await openFilePreviewModal(page, row, document.id); await expect( - modal.locator('.prose').getByRole('heading', { name: MARKDOWN_HEADING }) + modal + .getByTestId('markdown-preview') + .getByRole('heading', { name: MARKDOWN_HEADING }) ).toBeVisible(); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/FilePreviewer/MarkdownRenderer.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/FilePreviewer/MarkdownRenderer.tsx index 846f785d6539..2e577f68ed7e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/FilePreviewer/MarkdownRenderer.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/FilePreviewer/MarkdownRenderer.tsx @@ -40,7 +40,7 @@ const MarkdownRenderer = ({ content }: PreviewRendererProps) => { }, [content]); return ( -
+
{text} From 78d712cf9fced7df1ec06cb633320464d6b91872 Mon Sep 17 00:00:00 2001 From: Rohit0301 Date: Sun, 18 Oct 2026 00:39:46 +0530 Subject: [PATCH 4/6] test(playwright): select Data Insight tabs by data-testid instead of role Add data-insight-tab- to the Data Insight left panel and replace the link-or-menuitem locator with openDataInsightTab(page, tab), also used for the App Analytics tab. Collate adds the same test id to its overridden panel (openmetadata-collate#7559). --- .../playwright/e2e/Flow/CustomizeWidgets.spec.ts | 5 +++-- .../ui/playwright/e2e/Pages/DataInsight.spec.ts | 15 +++++++-------- .../resources/ui/playwright/utils/dataInsight.ts | 12 ++++-------- .../DataInsightLeftPanel/DataInsightLeftPanel.tsx | 1 + 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts index 68a8f3e78417..18e6f6e2c23b 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts @@ -12,6 +12,7 @@ */ import { Page, Response } from '@playwright/test'; import { KPI_DATA } from '../../constant/dataInsight'; +import { DataInsightTabs } from '../../../src/interface/data-insight.interface'; import { SidebarItem } from '../../constant/sidebar'; import { DataProduct } from '../../support/domain/DataProduct'; import { Domain } from '../../support/domain/Domain'; @@ -34,7 +35,7 @@ import { addKpi, deleteKpiRequest, deleteSeededKpisOnChart, - openKpiTab, + openDataInsightTab, } from '../../utils/dataInsight'; import { waitForAllLoadersToDisappear } from '../../utils/entity'; import { sidebarClick } from '../../utils/sidebar'; @@ -314,7 +315,7 @@ test('KPI Widget', async ({ page, persona, kpiIds }) => { await waitForAllLoadersToDisappear(page); await sidebarClick(page, SidebarItem.DATA_INSIGHT); - await openKpiTab(page); + await openDataInsightTab(page, DataInsightTabs.KPIS); await page.getByTestId('add-kpi-btn').click(); const createdKpi = await addKpi(page, { diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts index cd45acfe3cf0..d02e8cf48aee 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts @@ -13,12 +13,13 @@ import { Page } from '@playwright/test'; import { Kpi } from '../../../src/generated/dataInsight/kpi/kpi'; import { KPI_DATA } from '../../constant/dataInsight'; +import { DataInsightTabs } from '../../../src/interface/data-insight.interface'; import { MetricClass } from '../../support/entity/MetricClass'; import { expect, test } from '../../support/fixtures/isolatedUser'; import { okJson } from '../../utils/apiResponse'; import { createNewPage, redirectToHomePage, uuid } from '../../utils/common'; import { waitForLandingPageWidget } from '../../utils/customizeLandingPage'; -import { addKpi, deleteKpiRequest, openKpiTab } from '../../utils/dataInsight'; +import { addKpi, deleteKpiRequest, openDataInsightTab } from '../../utils/dataInsight'; import { waitForResponseWithStatus } from '../../utils/waitHelpers'; // use the admin user to login @@ -95,7 +96,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { test('Create description and owner KPI', async ({ page }) => { await navigateToDataInsightPage(page); - await openKpiTab(page); + await openDataInsightTab(page, DataInsightTabs.KPIS); for (const data of kpiData) { await page.getByTestId('add-kpi-btn').click(); @@ -224,9 +225,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await page.getByTestId('date-picker-menu').click(); await page.getByRole('menuitem', { name: 'Last 60 days' }).click(); - await page - .getByRole('link', { name: 'App Analytics', exact: true }) - .click(); + await openDataInsightTab(page, DataInsightTabs.APP_ANALYTICS); await expect(page.getByTestId('summary-card-content')).toBeVisible(); await expect( @@ -257,7 +256,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await percentageOfDataAssetWithDescriptionResponse; await page.getByTestId('date-picker-menu').click(); await page.getByRole('menuitem', { name: 'Last 60 days' }).click(); - await openKpiTab(page); + await openDataInsightTab(page, DataInsightTabs.KPIS); await expect(page.getByTestId('kpi-card')).toBeVisible(); await expect( @@ -289,7 +288,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await latestKPIResponse; await percentageOfDataAssetWithDescriptionResponse; - await openKpiTab(page); + await openDataInsightTab(page, DataInsightTabs.KPIS); for (const data of kpiData) { await page.getByTestId(`edit-action-${data.displayName}`).click(); @@ -356,7 +355,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await latestKPIResponse; await percentageOfDataAssetWithDescriptionResponse; - await openKpiTab(page); + await openDataInsightTab(page, DataInsightTabs.KPIS); for (const data of kpiData) { const kpi = getCreatedKpi(data.displayName); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts index e8403a5f78bf..1ba6920fdb5e 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts @@ -12,6 +12,7 @@ */ import { APIRequestContext, Page } from '@playwright/test'; import { Kpi } from '../../src/generated/dataInsight/kpi/kpi'; +import { DataInsightTabs } from '../../src/interface/data-insight.interface'; import { KPIData } from '../constant/dataInsight.interface'; import { deleteFixtureEntity, okJson, settleAll } from './apiResponse'; import { fillDescriptionBox, selectOptionWithRetry } from './common'; @@ -115,12 +116,7 @@ export const addKpi = async (page: Page, data: KPIData) => { return { ...kpi, id: kpi.id, fullyQualifiedName: kpi.fullyQualifiedName }; }; -// OpenMetadata renders the Data Insight left panel as links; Collate overrides it with a menu. -export const openKpiTab = async (page: Page) => { - const panel = page.getByTestId('data-insight-left-panel'); - await panel - .getByRole('link', { name: 'KPIs', exact: true }) - .or(panel.getByRole('menuitem', { name: 'KPIs', exact: true })) - .click(); - await page.waitForURL('**/data-insights/kpi'); +export const openDataInsightTab = async (page: Page, tab: DataInsightTabs) => { + await page.getByTestId(`data-insight-tab-${tab}`).click(); + await page.waitForURL(`**/data-insights/${tab}`); }; diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/DataInsightPage/DataInsightLeftPanel/DataInsightLeftPanel.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/DataInsightPage/DataInsightLeftPanel/DataInsightLeftPanel.tsx index fe5459bc5f37..3206b526eb72 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/DataInsightPage/DataInsightLeftPanel/DataInsightLeftPanel.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/DataInsightPage/DataInsightLeftPanel/DataInsightLeftPanel.tsx @@ -36,6 +36,7 @@ const DataInsightLeftPanel = () => {
  • Date: Sat, 17 Oct 2026 19:10:26 +0000 Subject: [PATCH 5/6] chore(playwright): auto-refresh impact-map.generated.json --- .github/playwright/impact-map.generated.json | 498 ++++++++++++++++++- 1 file changed, 493 insertions(+), 5 deletions(-) diff --git a/.github/playwright/impact-map.generated.json b/.github/playwright/impact-map.generated.json index 9220db711969..274a8cfd9360 100644 --- a/.github/playwright/impact-map.generated.json +++ b/.github/playwright/impact-map.generated.json @@ -7308,7 +7308,9 @@ "openmetadata-ui/src/main/resources/ui/src/components/Explore/SortingDropDown.tsx" ], "specs": [ - "playwright/e2e/Features/ExploreColumnsSortLabel.spec.ts" + "playwright/e2e/Features/ExploreColumnsSortLabel.spec.ts", + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" ] }, { @@ -8328,6 +8330,15 @@ "playwright/e2e/Search/SearchRelevance.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/components/SearchedData/SearchedData.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/components/SearchedData/SearchedData.tsx" @@ -11562,6 +11573,15 @@ "playwright/e2e/Features/Announcements/SystemAnnouncements.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/enums/DataInsight.enum.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/enums/DataQuality.enum.ts" @@ -11575,7 +11595,9 @@ "openmetadata-ui/src/main/resources/ui/src/enums/common.enum.ts" ], "specs": [ - "playwright/e2e/Features/IngestionListNameSorting.spec.ts" + "playwright/e2e/Features/IngestionListNameSorting.spec.ts", + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" ] }, { @@ -11594,9 +11616,38 @@ ], "specs": [ "playwright/e2e/Features/TableConstraint.spec.ts", + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/DataProducts.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportData.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChart.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChartResult.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/kpi/kpi.ts" @@ -11606,6 +11657,51 @@ "playwright/e2e/Pages/DataInsight.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/ai/aiApplication.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/ai/llmModel.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/ai/mcpServer.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/tag.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiCollection.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiEndpoint.ts" @@ -11658,6 +11754,7 @@ "playwright/e2e/Pages/CustomProperties.spec.ts", "playwright/e2e/Pages/CustomPropertiesApiContract.spec.ts", "playwright/e2e/Pages/DataContracts.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/DescriptionVisibility.spec.ts", "playwright/e2e/Pages/Domains.spec.ts", "playwright/e2e/Pages/Entity.spec.ts", @@ -11681,6 +11778,15 @@ "playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/chart.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/container.ts" @@ -11735,6 +11841,7 @@ "playwright/e2e/Pages/CustomProperties.spec.ts", "playwright/e2e/Pages/CustomPropertiesApiContract.spec.ts", "playwright/e2e/Pages/DataContracts.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/DescriptionVisibility.spec.ts", "playwright/e2e/Pages/Domains.spec.ts", "playwright/e2e/Pages/Entity.spec.ts", @@ -11757,13 +11864,69 @@ "playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/contextFile.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboard.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboardDataModel.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dataContract.ts" ], "specs": [ "playwright/e2e/Flow/AlertSeveralSources.spec.ts", - "playwright/e2e/Flow/ObservabilityAlerts.spec.ts" + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Flow/ObservabilityAlerts.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/directory.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" ] }, { @@ -11807,6 +11970,7 @@ "playwright/e2e/Flow/NestedChildrenUpdates.spec.ts", "playwright/e2e/Pages/CustomProperties.spec.ts", "playwright/e2e/Pages/DataContracts.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/Domains.spec.ts", "playwright/e2e/Pages/Entity.spec.ts", "playwright/e2e/Pages/EntityDataConsumer.spec.ts", @@ -11828,12 +11992,68 @@ "playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossary.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossaryTerm.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metric.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/mlmodel.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/page.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/query.ts" ], "specs": [ - "playwright/e2e/Features/DomainFilterQueryFilter.spec.ts" + "playwright/e2e/Features/DomainFilterQueryFilter.spec.ts", + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" ] }, { @@ -11886,6 +12106,7 @@ "playwright/e2e/Pages/CustomProperties.spec.ts", "playwright/e2e/Pages/CustomPropertiesApiContract.spec.ts", "playwright/e2e/Pages/DataContracts.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/DescriptionVisibility.spec.ts", "playwright/e2e/Pages/Domains.spec.ts", "playwright/e2e/Pages/Entity.spec.ts", @@ -11909,6 +12130,24 @@ "playwright/e2e/VersionPages/ServiceEntityVersionPage.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/spreadsheet.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts" @@ -12472,6 +12711,7 @@ "playwright/e2e/Pages/DataContractInheritance.spec.ts", "playwright/e2e/Pages/DataContracts.spec.ts", "playwright/e2e/Pages/DataContractsSemanticRules.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/DataMarketplace.spec.ts", "playwright/e2e/Pages/DataMarketplaceAnnouncements.spec.ts", "playwright/e2e/Pages/DataMarketplacePermissions.spec.ts", @@ -12557,6 +12797,7 @@ "playwright/e2e/Flow/NestedChildrenUpdates.spec.ts", "playwright/e2e/Pages/CustomProperties.spec.ts", "playwright/e2e/Pages/DataContracts.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/Domains.spec.ts", "playwright/e2e/Pages/Entity.spec.ts", "playwright/e2e/Pages/EntityDataConsumer.spec.ts", @@ -12596,6 +12837,24 @@ "playwright/e2e/Pages/DescriptionVisibility.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/dataProduct.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/domain.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/rule.ts" @@ -12606,6 +12865,42 @@ "playwright/e2e/Features/DataQuality/TestCaseResultPermissions.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/apiService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/driveService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts" @@ -12621,11 +12916,94 @@ "playwright/e2e/Features/DomainIsolation/DomainIncidentIsolation.spec.ts", "playwright/e2e/Features/IncidentManager.spec.ts", "playwright/e2e/Features/IncidentManagerPagination.spec.ts", + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts", "playwright/e2e/Pages/LogsViewer.spec.ts", "playwright/e2e/Pages/TestSuite.spec.ts", "playwright/e2e/Pages/TestSuiteDetailsPage.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/messagingService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/mlmodelService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/searchService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/services/storageService.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/team.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/user.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/entity/type.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/events/testDestinationStatus.ts" @@ -12642,12 +13020,32 @@ "playwright/e2e/Features/AutoPilot.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/generated/tests/testCaseResolutionStatus.ts" ], "specs": [ - "playwright/e2e/Features/DataQuality/DataQualityDashboard.spec.ts" + "playwright/e2e/Features/DataQuality/DataQualityDashboard.spec.ts", + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/tests/testSuite.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" ] }, { @@ -12688,6 +13086,87 @@ "playwright/e2e/Pages/DescriptionVisibility.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/type/tagLabel.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/generated/type/votes.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/interface/data-insight.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/interface/discovery/explore.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/interface/entity/vote.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/interface/knowledge-center.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/interface/queryFilter.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/interface/search.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/interface/source.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/pages/APICollectionPage/APIEndpointsTab.tsx" @@ -12907,6 +13386,15 @@ "playwright/e2e/Pages/GlossaryImportExport.spec.ts" ] }, + { + "sources": [ + "openmetadata-ui/src/main/resources/ui/src/pages/ExplorePage/ExplorePage.interface.ts" + ], + "specs": [ + "playwright/e2e/Flow/CustomizeWidgets.spec.ts", + "playwright/e2e/Pages/DataInsight.spec.ts" + ] + }, { "sources": [ "openmetadata-ui/src/main/resources/ui/src/pages/ExplorePage/ExplorePageV1.component.tsx" From fe3b48d5212ce5df72dd3ba31a83a152b6d77236 Mon Sep 17 00:00:00 2001 From: Rohit0301 Date: Sun, 18 Oct 2026 11:03:56 +0530 Subject: [PATCH 6/6] test(playwright): stop importing app code from src/interface in Data Insight helper lint:playwright only allows src/generated and src/enums imports, so openDataInsightTab takes the tab key as a string-literal type. --- .../e2e/Flow/CustomizeWidgets.spec.ts | 3 +-- .../ui/playwright/e2e/Pages/DataInsight.spec.ts | 17 ++++++++++------- .../ui/playwright/utils/dataInsight.ts | 6 ++++-- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts index b667b0345032..e7291ad1d787 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/CustomizeWidgets.spec.ts @@ -12,7 +12,6 @@ */ import { Page, Response } from '@playwright/test'; import { KPI_DATA } from '../../constant/dataInsight'; -import { DataInsightTabs } from '../../../src/interface/data-insight.interface'; import { SidebarItem } from '../../constant/sidebar'; import { DataProduct } from '../../support/domain/DataProduct'; import { Domain } from '../../support/domain/Domain'; @@ -315,7 +314,7 @@ test('KPI Widget', async ({ page, persona, kpiIds }) => { await waitForAllLoadersToDisappear(page); await sidebarClick(page, SidebarItem.DATA_INSIGHT); - await openDataInsightTab(page, DataInsightTabs.KPIS); + await openDataInsightTab(page, 'kpi'); await page.getByTestId('add-kpi-btn').click(); const createdKpi = await addKpi(page, { diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts index d02e8cf48aee..8621029ca4b5 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/DataInsight.spec.ts @@ -13,13 +13,16 @@ import { Page } from '@playwright/test'; import { Kpi } from '../../../src/generated/dataInsight/kpi/kpi'; import { KPI_DATA } from '../../constant/dataInsight'; -import { DataInsightTabs } from '../../../src/interface/data-insight.interface'; import { MetricClass } from '../../support/entity/MetricClass'; import { expect, test } from '../../support/fixtures/isolatedUser'; import { okJson } from '../../utils/apiResponse'; import { createNewPage, redirectToHomePage, uuid } from '../../utils/common'; import { waitForLandingPageWidget } from '../../utils/customizeLandingPage'; -import { addKpi, deleteKpiRequest, openDataInsightTab } from '../../utils/dataInsight'; +import { + addKpi, + deleteKpiRequest, + openDataInsightTab, +} from '../../utils/dataInsight'; import { waitForResponseWithStatus } from '../../utils/waitHelpers'; // use the admin user to login @@ -96,7 +99,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { test('Create description and owner KPI', async ({ page }) => { await navigateToDataInsightPage(page); - await openDataInsightTab(page, DataInsightTabs.KPIS); + await openDataInsightTab(page, 'kpi'); for (const data of kpiData) { await page.getByTestId('add-kpi-btn').click(); @@ -225,7 +228,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await page.getByTestId('date-picker-menu').click(); await page.getByRole('menuitem', { name: 'Last 60 days' }).click(); - await openDataInsightTab(page, DataInsightTabs.APP_ANALYTICS); + await openDataInsightTab(page, 'app-analytics'); await expect(page.getByTestId('summary-card-content')).toBeVisible(); await expect( @@ -256,7 +259,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await percentageOfDataAssetWithDescriptionResponse; await page.getByTestId('date-picker-menu').click(); await page.getByRole('menuitem', { name: 'Last 60 days' }).click(); - await openDataInsightTab(page, DataInsightTabs.KPIS); + await openDataInsightTab(page, 'kpi'); await expect(page.getByTestId('kpi-card')).toBeVisible(); await expect( @@ -288,7 +291,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await latestKPIResponse; await percentageOfDataAssetWithDescriptionResponse; - await openDataInsightTab(page, DataInsightTabs.KPIS); + await openDataInsightTab(page, 'kpi'); for (const data of kpiData) { await page.getByTestId(`edit-action-${data.displayName}`).click(); @@ -355,7 +358,7 @@ test.describe('Data Insight Page', { tag: '@data-insight' }, () => { await latestKPIResponse; await percentageOfDataAssetWithDescriptionResponse; - await openDataInsightTab(page, DataInsightTabs.KPIS); + await openDataInsightTab(page, 'kpi'); for (const data of kpiData) { const kpi = getCreatedKpi(data.displayName); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts index 8c90745f5259..0d3b01c2bfc2 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/dataInsight.ts @@ -12,7 +12,6 @@ */ import { APIRequestContext, Page } from '@playwright/test'; import { Kpi } from '../../src/generated/dataInsight/kpi/kpi'; -import { DataInsightTabs } from '../../src/interface/data-insight.interface'; import { KPIData } from '../constant/dataInsight.interface'; import { deleteFixtureEntity, okJson, settleAll } from './apiResponse'; import { fillDescriptionBox, selectOptionWithRetry } from './common'; @@ -121,7 +120,10 @@ export const addKpi = async (page: Page, data: KPIData) => { return { ...kpi, id: kpi.id, fullyQualifiedName: kpi.fullyQualifiedName }; }; -export const openDataInsightTab = async (page: Page, tab: DataInsightTabs) => { +export const openDataInsightTab = async ( + page: Page, + tab: 'kpi' | 'app-analytics' +) => { await page.getByTestId(`data-insight-tab-${tab}`).click(); await page.waitForURL(`**/data-insights/${tab}`); };