fix playwrights

This commit is contained in:
karanh37 2025-09-29 11:32:29 +05:30
parent 73ea261451
commit 3816eb09f0
4 changed files with 65 additions and 43 deletions

View File

@ -21,7 +21,7 @@ export enum SidebarItem {
GOVERNANCE = 'governance',
GLOSSARY = 'glossary',
DOMAINS = 'domains-section',
DATA_PRODUCTS = 'data-products',
DATA_PRODUCT = 'data-product',
TAGS = 'tags',
INSIGHTS = 'data-insight',
SETTINGS = 'settings',
@ -47,6 +47,7 @@ export const SIDEBAR_LIST_ITEMS = {
[SidebarItem.TAGS]: [SidebarItem.GOVERNANCE, SidebarItem.TAGS],
[SidebarItem.METRICS]: [SidebarItem.GOVERNANCE, SidebarItem.METRICS],
[SidebarItem.DOMAIN]: [SidebarItem.DOMAINS, SidebarItem.DOMAIN],
[SidebarItem.DATA_PRODUCT]: [SidebarItem.DOMAINS, SidebarItem.DATA_PRODUCT],
// Profile Dropdown
'user-name': ['dropdown-profile', 'user-name'],

View File

@ -227,8 +227,8 @@ test.describe('Domains', () => {
await test.step('Follow & Un-follow DataProducts', async () => {
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDataProduct(page, domain.data, dataProduct1.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct1.data);
await followEntity(page, EntityTypeEndpoint.DataProduct);
await redirectToHomePage(page);
@ -240,8 +240,8 @@ test.describe('Domains', () => {
page.locator('[data-testid="following-widget"]')
).toContainText(dataProduct1.data.displayName);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDataProduct(page, domain.data, dataProduct1.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct1.data);
await unFollowEntity(page, EntityTypeEndpoint.DataProduct);
await redirectToHomePage(page);
@ -256,8 +256,8 @@ test.describe('Domains', () => {
await test.step('Add assets to DataProducts', async () => {
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDataProduct(page, domain.data, dataProduct1.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct1.data);
await addAssetsToDataProduct(
page,
dataProduct1.data.fullyQualifiedName ?? '',
@ -267,8 +267,8 @@ test.describe('Domains', () => {
await test.step('Remove assets from DataProducts', async () => {
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDataProduct(page, domain.data, dataProduct1.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct1.data);
await removeAssetsFromDataProduct(page, dataProduct1.data, assets);
await checkAssetsCount(page, 0);
});
@ -555,11 +555,11 @@ test.describe('Domains', () => {
await newDomainDP2.create(apiContext);
await page.reload();
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDataProduct(page, domain1.data, newDomainDP1.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, newDomainDP1.data);
await checkAssetsCount(page, 0);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDataProduct(page, domain1.data, newDomainDP2.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, newDomainDP2.data);
await checkAssetsCount(page, 0);
}
);
@ -607,9 +607,8 @@ test.describe('Domains', () => {
await page.reload();
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDomain(page, domain.data);
await selectDataProduct(page, domain.data, dataProduct.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct.data);
await expect(
page.getByTestId('domain-owner-name').getByTestId('owner-label')
@ -714,8 +713,8 @@ test.describe('Domains', () => {
await createDataProduct(page, dataProduct.data);
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
await selectDataProduct(page, domain1.data, dataProduct.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct.data);
await addTagsAndGlossaryToDomain(page, {
tagFqn: tag.responseData.fullyQualifiedName,
@ -824,11 +823,7 @@ test.describe('Domains', () => {
// Navigate to domain page
await sidebarClick(page, SidebarItem.DOMAIN);
// Select the domain
await page
.getByRole('menuitem', { name: domain.data.displayName })
.locator('span')
.click();
await selectDomain(page, domain.data);
// Click on custom properties tab
await page.getByTestId('custom_properties').click();
@ -866,10 +861,7 @@ test.describe('Domains', () => {
// Navigate back to the domain and custom properties
await sidebarClick(page, SidebarItem.DOMAIN);
await page
.getByRole('menuitem', { name: domain.data.displayName })
.locator('span')
.click();
await selectDomain(page, domain.data);
await page.getByTestId('custom_properties').click();

View File

@ -36,7 +36,7 @@ import {
toastNotification,
uuid,
} from './common';
import { addOwner, waitForAllLoadersToDisappear } from './entity';
import { addOwner } from './entity';
import { sidebarClick } from './sidebar';
export const assignDomain = async (page: Page, domain: Domain['data']) => {
@ -206,22 +206,45 @@ export const selectDataProductFromTab = async (
export const selectDataProduct = async (
page: Page,
domain: Domain['data'],
dataProduct: DataProduct['data']
) => {
await page
.getByRole('menuitem', { name: domain.displayName })
.locator('span')
.click();
const searchBox = page
.getByTestId('page-layout-v1')
.getByRole('textbox', { name: 'Search' });
await selectDataProductFromTab(page, dataProduct);
const dpRes = page.waitForResponse(
'/api/v1/search/query?q=&index=data_product_search_index*'
);
await searchBox.fill(dataProduct.name);
await dpRes;
await page.waitForSelector('[data-testid="loader"]', {
state: 'detached',
});
const dpApiRes = page.waitForResponse('/api/v1/dataProducts/name/*');
await page.getByRole('row', { name: dataProduct.displayName }).click();
await dpApiRes;
await page.waitForSelector('[data-testid="loader"]', {
state: 'detached',
});
};
const goToAssetsTab = async (page: Page, domain: Domain['data']) => {
await selectDomain(page, domain);
await checkDomainDisplayName(page, domain.displayName);
const assetRes = page.waitForResponse('/api/v1/search/query*');
await page.getByRole('tab', { name: /Assets/ }).click();
await waitForAllLoadersToDisappear(page);
await assetRes;
await page.waitForLoadState('networkidle');
await page.waitForSelector('[data-testid="loader"]', { state: 'detached' });
};
const fillCommonFormItems = async (
@ -579,7 +602,7 @@ export const createDataProduct = async (
await fillCommonFormItems(page, dataProduct);
const saveRes = page.waitForResponse('/api/v1/dataProducts');
await page.getByTestId('save-data-product').click();
await page.getByTestId('save-btn').click();
await saveRes;
};
@ -604,12 +627,14 @@ export const verifyDataProductAssetsAfterDelete = async (
await test.step('Add assets to DataProduct Sales', async () => {
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
if (subDomain) {
await sidebarClick(page, SidebarItem.DOMAIN);
await selectSubDomain(page, domain.data, subDomain.data);
await selectDataProductFromTab(page, dataProduct1.data);
} else {
await selectDataProduct(page, domain.data, dataProduct1.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct1.data);
}
await addAssetsToDataProduct(
page,
@ -620,12 +645,14 @@ export const verifyDataProductAssetsAfterDelete = async (
await test.step('Add assets to DataProduct Finance', async () => {
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
if (subDomain) {
await sidebarClick(page, SidebarItem.DOMAIN);
await selectSubDomain(page, domain.data, subDomain.data);
await selectDataProductFromTab(page, dataProduct2.data);
} else {
await selectDataProduct(page, domain.data, dataProduct2.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, dataProduct2.data);
}
await addAssetsToDataProduct(
page,
@ -657,12 +684,14 @@ export const verifyDataProductAssetsAfterDelete = async (
'Verify assets are not present in the newly created data product',
async () => {
await redirectToHomePage(page);
await sidebarClick(page, SidebarItem.DOMAIN);
if (subDomain) {
await sidebarClick(page, SidebarItem.DOMAIN);
await selectSubDomain(page, domain.data, subDomain.data);
await selectDataProductFromTab(page, newDataProduct1.data);
} else {
await selectDataProduct(page, domain.data, newDataProduct1.data);
await sidebarClick(page, SidebarItem.DATA_PRODUCT);
await selectDataProduct(page, newDataProduct1.data);
}
await checkAssetsCount(page, 0);
}

View File

@ -32,7 +32,7 @@ describe('LeftSidebar', () => {
expect(screen.getByTestId('image')).toBeInTheDocument();
expect(screen.getByTestId('app-bar-item-explore')).toBeInTheDocument();
expect(screen.getByTestId('observability')).toBeInTheDocument();
expect(screen.getByTestId('app-bar-item-domain')).toBeInTheDocument();
expect(screen.getByTestId('domains-section')).toBeInTheDocument();
expect(screen.getByTestId('governance')).toBeInTheDocument();
expect(screen.getByTestId('app-bar-item-settings')).toBeInTheDocument();
expect(screen.getByTestId('app-bar-item-logout')).toBeInTheDocument();