diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Lineage/DataAssetLineage.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Lineage/DataAssetLineage.spec.ts index 766ad1cd0232..10a2e5c89648 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Lineage/DataAssetLineage.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Lineage/DataAssetLineage.spec.ts @@ -448,6 +448,52 @@ test.describe('Column Level Lineage', () => { }); }); +test.describe('Temp lineage table nodes', () => { + const RAW_ORDER_FQN = 'sample_data.ecommerce_db.shopify.raw_order'; + const TEMP_TABLE_NAMES = ['tmp_order_staging', 'tmp_order_enriched']; + + test.beforeAll('verify sample data entity exists', async ({ browser }) => { + const { apiContext, afterAction } = await getDefaultAdminAPIContext( + browser + ); + + try { + const response = await apiContext.get( + `/api/v1/tables/name/${encodeURIComponent(RAW_ORDER_FQN)}` + ); + + if (!response.ok()) { + throw new Error( + `Sample entity '${RAW_ORDER_FQN}' not found. Ensure sample data is loaded before running temp lineage tests.` + ); + } + } finally { + await afterAction(); + } + }); + + test.beforeEach(async ({ page }) => { + await redirectToHomePage(page); + }); + + test('should render temp lineage table nodes on canvas', async ({ page }) => { + await page.goto(`/table/${encodeURIComponent(RAW_ORDER_FQN)}`); + await waitForAllLoadersToDisappear(page); + + await visitLineageTab(page); + await waitForAllLoadersToDisappear(page); + + await page.getByTestId('fit-screen').click(); + await page.getByRole('menuitem', { name: 'Fit to screen' }).click(); + + for (const tempTableName of TEMP_TABLE_NAMES) { + await expect( + page.getByTestId(`lineage-node-${tempTableName}`) + ).toBeVisible(); + } + }); +}); + test.describe('Lineage Settings modal', () => { const table = new TableClass();