From 306c8ecfbe2a51a5b926d6943e0225f6e08ca77f Mon Sep 17 00:00:00 2001 From: Shailesh Parmar Date: Thu, 2 Nov 2023 10:39:10 +0530 Subject: [PATCH] cypress: fixed AUT cypress test part 2 (#13818) --- .../ui/cypress/common/DomainUtils.js | 12 ++- .../ui/cypress/common/VersionUtils.js | 13 ++-- .../ui/cypress/common/advancedSearch.js | 40 +++++----- .../resources/ui/cypress/common/common.js | 73 +++++++++++-------- .../ui/cypress/constants/constants.js | 4 + .../cypress/e2e/Features/ActivityFeed.spec.js | 19 +++-- .../e2e/Features/DataConsumerRole.spec.js | 27 ++++--- .../ui/cypress/e2e/Features/Following.spec.js | 2 +- .../cypress/e2e/Features/QueryEntity.spec.js | 27 +++++-- .../e2e/Features/RecentlyViewed.spec.js | 9 ++- .../e2e/Features/RestoreEntity.spec.js | 10 +-- .../cypress/e2e/Features/SchemaSearch.spec.js | 3 + .../e2e/Features/UpdateDisplayName.spec.js | 26 ++++--- .../e2e/Flow/AddAndRemoveTierAndOwner.spec.js | 51 ++++++++----- .../cypress/e2e/Flow/AddTeamAsOwner.spec.js | 20 ++--- .../e2e/Flow/EntityAnnouncement.spec.js | 6 +- .../ui/cypress/e2e/Flow/EntityVoting.spec.js | 30 ++++---- .../ui/cypress/e2e/Flow/Lineage.spec.js | 16 ++-- .../ui/cypress/e2e/Flow/TagsAddRemove.spec.js | 20 ++--- .../ui/cypress/e2e/Flow/Task.spec.js | 24 +++--- .../e2e/Flow/TotalCountForTeams&Users.spec.js | 10 +-- .../e2e/Pages/DataQualityAndProfiler.spec.js | 12 +-- .../e2e/Pages/EntityVersionPages.spec.js | 39 +++++----- .../ui/cypress/e2e/Pages/Glossary.spec.js | 6 +- .../e2e/Pages/SearchIndexDetails.spec.js | 30 ++++---- .../ui/cypress/e2e/Pages/Tags.spec.js | 12 ++- .../ui/cypress/e2e/Service/postgres.spec.js | 6 +- .../e2e/Service/redshiftWithDBT.spec.js | 10 ++- .../ui/cypress/e2e/Service/snowflake.spec.js | 6 +- .../src/components/Users/Users.component.tsx | 1 + .../UserProfileRoles.component.tsx | 15 ++-- .../UserProfileRoles.interface.ts | 1 + 32 files changed, 345 insertions(+), 235 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/DomainUtils.js b/openmetadata-ui/src/main/resources/ui/cypress/common/DomainUtils.js index b575d083b4b..70241e6acdd 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/common/DomainUtils.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/common/DomainUtils.js @@ -116,7 +116,11 @@ export const updateAssets = (domainObj) => { cy.contains('Adding a new Asset is easy, just give it a spin!').should( 'be.visible' ); - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); cy.get('[data-testid="add-domain"]').click(); @@ -157,7 +161,11 @@ export const removeAssets = (domainObj) => { .contains(entity.term) .click(); - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); cy.get('[data-testid="add-domain"]').click(); verifyResponseStatusCode('@domains', 200); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/VersionUtils.js b/openmetadata-ui/src/main/resources/ui/cypress/common/VersionUtils.js index dc13f8ad6a5..298de995c81 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/common/VersionUtils.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/common/VersionUtils.js @@ -26,13 +26,12 @@ export const visitEntityDetailsVersionPage = ( entityFQN, version ) => { - visitEntityDetailsPage( - entityDetails.name, - entityDetails.serviceName, - entityDetails.entity, - undefined, - entityDetails.entityType - ); + visitEntityDetailsPage({ + term: entityDetails.term, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + entityType: entityDetails.entityType, + }); interceptURL( 'GET', diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/advancedSearch.js b/openmetadata-ui/src/main/resources/ui/cypress/common/advancedSearch.js index 27ed95e6ef8..cd342d5cdeb 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/common/advancedSearch.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/common/advancedSearch.js @@ -255,11 +255,11 @@ export const checkmust_notPaths = ( }; export const removeOwner = () => { - visitEntityDetailsPage( - SEARCH_ENTITY_TABLE.table_1.term, - SEARCH_ENTITY_TABLE.table_1.serviceName, - SEARCH_ENTITY_TABLE.table_1.entity - ); + visitEntityDetailsPage({ + term: SEARCH_ENTITY_TABLE.table_1.term, + serviceName: SEARCH_ENTITY_TABLE.table_1.serviceName, + entity: SEARCH_ENTITY_TABLE.table_1.entity, + }); interceptURL( 'PATCH', `/api/v1/${SEARCH_ENTITY_TABLE.table_1.entity}/*`, @@ -272,11 +272,11 @@ export const removeOwner = () => { }; export const addOwner = (ownerName) => { - visitEntityDetailsPage( - SEARCH_ENTITY_TABLE.table_1.term, - SEARCH_ENTITY_TABLE.table_1.serviceName, - SEARCH_ENTITY_TABLE.table_1.entity - ); + visitEntityDetailsPage({ + term: SEARCH_ENTITY_TABLE.table_1.term, + serviceName: SEARCH_ENTITY_TABLE.table_1.serviceName, + entity: SEARCH_ENTITY_TABLE.table_1.entity, + }); interceptURL( 'GET', @@ -322,11 +322,11 @@ export const addOwner = (ownerName) => { }; export const addTier = () => { - visitEntityDetailsPage( - SEARCH_ENTITY_TABLE.table_2.term, - SEARCH_ENTITY_TABLE.table_2.serviceName, - SEARCH_ENTITY_TABLE.table_2.entity - ); + visitEntityDetailsPage({ + term: SEARCH_ENTITY_TABLE.table_2.term, + serviceName: SEARCH_ENTITY_TABLE.table_2.serviceName, + entity: SEARCH_ENTITY_TABLE.table_2.entity, + }); cy.get('[data-testid="edit-tier"]') .scrollIntoView() @@ -344,11 +344,11 @@ export const addTier = () => { }; export const addTag = (tag) => { - visitEntityDetailsPage( - SEARCH_ENTITY_TABLE.table_3.term, - SEARCH_ENTITY_TABLE.table_3.serviceName, - SEARCH_ENTITY_TABLE.table_3.entity - ); + visitEntityDetailsPage({ + term: SEARCH_ENTITY_TABLE.table_3.term, + serviceName: SEARCH_ENTITY_TABLE.table_3.serviceName, + entity: SEARCH_ENTITY_TABLE.table_3.entity, + }); cy.get('[data-testid="entity-right-panel"] [data-testid="entity-tags"]') .eq(0) diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js index 3b5dd228a2b..1ba9df4d067 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js @@ -326,17 +326,16 @@ export const testServiceCreationAndIngestion = ({ verifyResponseStatusCode('@testConnectionStepDefinition', 200); - cy.get('[data-testid="test-connection-modal"]').should('exist'); - cy.get('.ant-modal-footer > .ant-btn-primary') - .should('exist') - .contains('OK') - .click(); - verifyResponseStatusCode('@createWorkflow', 201); // added extra buffer time as triggerWorkflow API can take up to 2minute to provide result verifyResponseStatusCode('@triggerWorkflow', 200, { responseTimeout: 120000, }); + cy.get('[data-testid="test-connection-modal"]').should('exist'); + cy.get('.ant-modal-footer > .ant-btn-primary') + .should('exist') + .contains('OK') + .click(); verifyResponseStatusCode('@getWorkflow', 200); cy.get('[data-testid="messag-text"]').then(($message) => { if ($message.text().includes('partially successful')) { @@ -525,13 +524,14 @@ export const goToAddNewServicePage = (service_type) => { cy.get('[data-testid="service-category"]').should('be.visible'); }; -export const visitEntityDetailsPage = ( +export const visitEntityDetailsPage = ({ term, serviceName, entity, dataTestId, - entityType -) => { + entityType, + entityFqn, +}) => { if (entity === 'dashboardDataModel') { interceptURL( 'GET', @@ -557,7 +557,7 @@ export const visitEntityDetailsPage = ( // searching term in search box cy.get('[data-testid="searchBox"]').scrollIntoView().should('be.visible'); - cy.get('[data-testid="searchBox"]').type(term); + cy.get('[data-testid="searchBox"]').type(entityFqn ?? term); cy.wait('@explorePageSearch').then(() => { cy.wait(500); cy.get('body').then(($body) => { @@ -598,11 +598,11 @@ export const visitEntityDetailsPage = ( // add new tag to entity and its table export const addNewTagToEntity = (entityObj, term) => { const { name, fqn } = term; - visitEntityDetailsPage( - entityObj.term, - entityObj.serviceName, - entityObj.entity - ); + visitEntityDetailsPage({ + term: entityObj.term, + serviceName: entityObj.serviceName, + entity: entityObj.entity, + }); cy.wait(500); cy.get( '[data-testid="classification-tags-0"] [data-testid="entity-tags"] [data-testid="add-tag"]' @@ -779,7 +779,7 @@ export const toastNotification = (msg, closeToast = true) => { export const addCustomPropertiesForEntity = ( propertyName, - entityType, + customPropertyData, customType, value, entityObj @@ -841,7 +841,7 @@ export const addCustomPropertiesForEntity = ( cy.get('[data-testid="propertyType"]').click(); cy.get(`[title="${customType}"]`).click(); - cy.get(descriptionBox).clear().type(entityType.description); + cy.get(descriptionBox).clear().type(customPropertyData.description); // Check if the property got added cy.intercept('/api/v1/metadata/types/name/*?fields=customProperties').as( @@ -857,11 +857,11 @@ export const addCustomPropertiesForEntity = ( // Checking the added property in Entity - visitEntityDetailsPage( - entityObj.term, - entityObj.serviceName, - entityObj.entity - ); + visitEntityDetailsPage({ + term: entityObj.term, + serviceName: entityObj.serviceName, + entity: entityObj.entity, + }); cy.get('[data-testid="custom_properties"]').click(); cy.get('tbody').should('contain', propertyName); @@ -876,6 +876,11 @@ export const addCustomPropertiesForEntity = ( cy.get('@editbutton').click(); + interceptURL( + 'PATCH', + `/api/v1/${customPropertyData.entityApiType}/*`, + 'patchEntity' + ); // Checking for value text box or markdown box cy.get('body').then(($body) => { if ($body.find('[data-testid="value-input"]').length > 0) { @@ -892,7 +897,7 @@ export const addCustomPropertiesForEntity = ( cy.get('[data-testid="save"]').click(); } }); - + verifyResponseStatusCode('@patchEntity', 200); cy.get(`[data-row-key="${propertyName}"]`).should('contain', value); }; @@ -1099,7 +1104,8 @@ export const updateDescriptionForIngestedTables = ( tableName, description, type, - entity + entity, + entityFqn ) => { interceptURL( 'GET', @@ -1118,7 +1124,7 @@ export const updateDescriptionForIngestedTables = ( 'pipelineStatus' ); // Navigate to ingested table - visitEntityDetailsPage(tableName, serviceName, entity); + visitEntityDetailsPage({ term: tableName, serviceName, entity, entityFqn }); // update description cy.get('[data-testid="edit-description"]') @@ -1176,7 +1182,7 @@ export const updateDescriptionForIngestedTables = ( retryIngestionRun(); // Navigate to table name - visitEntityDetailsPage(tableName, serviceName, entity); + visitEntityDetailsPage({ term: tableName, serviceName, entity }); cy.get('[data-testid="markdown-parser"]') .first() .invoke('text') @@ -1272,13 +1278,12 @@ export const deleteEntity = ( successMessageEntityName, deletionType = 'hard' ) => { - visitEntityDetailsPage( - entityName, + visitEntityDetailsPage({ + term: entityName, serviceName, entity, - undefined, - entityType - ); + entityType, + }); cy.get('[data-testid="manage-button"]').click(); @@ -1483,7 +1488,11 @@ export const addAnnouncement = (value) => { 'announcementFeed' ); - visitEntityDetailsPage(value.term, value.serviceName, value.entity); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + }); cy.get('[data-testid="manage-button"]').click(); cy.get('[data-testid="announcement-button"]').click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/constants/constants.js b/openmetadata-ui/src/main/resources/ui/cypress/constants/constants.js index e0c8984ea0f..f9c196ef8db 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/constants/constants.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/constants/constants.js @@ -384,6 +384,7 @@ export const ENTITIES = { stringValue: 'This is string propery', markdownValue: 'This is markdown value', entityObj: SEARCH_ENTITY_TABLE.table_1, + entityApiType: 'tables', }, entity_topic: { name: 'topic', @@ -392,6 +393,7 @@ export const ENTITIES = { stringValue: 'This is string propery', markdownValue: 'This is markdown value', entityObj: SEARCH_ENTITY_TOPIC.topic_1, + entityApiType: 'topics', }, // commenting the dashboard test for not, need to make changes in dynamic data-test side // entity_dashboard: { @@ -401,6 +403,7 @@ export const ENTITIES = { // stringValue: 'This is string propery', // markdownValue: 'This is markdown value', // entityObj: SEARCH_ENTITY_DASHBOARD.dashboard_1, + // entityApiType: "dashboards" // }, entity_pipeline: { name: 'pipeline', @@ -409,6 +412,7 @@ export const ENTITIES = { stringValue: 'This is string propery', markdownValue: 'This is markdown value', entityObj: SEARCH_ENTITY_PIPELINE.pipeline_1, + entityApiType: 'pipelines', }, }; diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/ActivityFeed.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/ActivityFeed.spec.js index 21ce0492cdc..8d94d19018d 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/ActivityFeed.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/ActivityFeed.spec.js @@ -60,13 +60,12 @@ describe('Activity feed', () => { const OWNER = 'admin'; interceptURL('PATCH', `/api/v1/${value.entity}/*`, 'patchOwner'); - visitEntityDetailsPage( - value.term, - value.serviceName, - value.entity, - undefined, - value.entityType - ); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + entityType: value.entityType, + }); verifyResponseStatusCode('@entityPermission', 200); verifyResponseStatusCode('@activityFeed', 200); @@ -291,7 +290,11 @@ describe('Activity feed', () => { const value = SEARCH_ENTITY_TABLE.table_1; interceptURL('GET', `/api/v1/${value.entity}/name/*`, 'getEntityDetails'); - visitEntityDetailsPage(value.term, value.serviceName, value.entity); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + }); cy.get('[data-testid="request-description"]').click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/DataConsumerRole.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/DataConsumerRole.spec.js index 05dff34b833..fbe440d30e5 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/DataConsumerRole.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/DataConsumerRole.spec.js @@ -147,7 +147,11 @@ describe('DataConsumer Edit policy should work properly', () => { cy.url().should('eq', `${BASE_URL}/my-data`); Object.values(ENTITIES).forEach((entity) => { - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); // Check Edit description cy.get('[data-testid="edit-description"]') .should('be.visible') @@ -172,11 +176,11 @@ describe('DataConsumer Edit policy should work properly', () => { }); // Check if tags is editable for table - visitEntityDetailsPage( - ENTITIES.table.term, - ENTITIES.table.serviceName, - ENTITIES.table.entity - ); + visitEntityDetailsPage({ + term: ENTITIES.table.term, + serviceName: ENTITIES.table.serviceName, + entity: ENTITIES.table.entity, + }); cy.get('[data-testid="add-tag"]') .should('be.visible') @@ -186,11 +190,12 @@ describe('DataConsumer Edit policy should work properly', () => { cy.get('[data-testid="tag-selector"]').should('be.visible'); // Check if tags is editable for dashboard - visitEntityDetailsPage( - ENTITIES.dashboard.term, - ENTITIES.dashboard.serviceName, - ENTITIES.dashboard.entity - ); + + visitEntityDetailsPage({ + term: ENTITIES.dashboard.term, + serviceName: ENTITIES.dashboard.serviceName, + entity: ENTITIES.dashboard.entity, + }); cy.get('[data-testid="add-tag"]') .should('be.visible') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/Following.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/Following.spec.js index 60f1d4dc44c..599cd948ea7 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/Following.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/Following.spec.js @@ -40,7 +40,7 @@ const FOLLOWING_ENTITIES = [ ]; const followEntity = ({ term, serviceName, entity }, isUnfollow) => { - visitEntityDetailsPage(term, serviceName, entity); + visitEntityDetailsPage({ term, serviceName, entity }); if (entity === 'dashboardDataModel') { interceptURL( diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/QueryEntity.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/QueryEntity.spec.js index 32897fb6858..35dd8fb1c8d 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/QueryEntity.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/QueryEntity.spec.js @@ -44,7 +44,11 @@ describe('Query Entity', () => { ); interceptURL('GET', '/api/v1/queries?*', 'fetchQuery'); interceptURL('POST', '/api/v1/queries', 'createQuery'); - visitEntityDetailsPage(DATA.term, DATA.serviceName, DATA.entity); + visitEntityDetailsPage({ + term: DATA.term, + serviceName: DATA.serviceName, + entity: DATA.entity, + }); cy.get('[data-testid="table_queries"]').click(); verifyResponseStatusCode('@fetchQuery', 200); @@ -54,7 +58,7 @@ describe('Query Entity', () => { cy.get(descriptionBox).scrollIntoView().type(DATA.description); cy.get('[data-testid="query-used-in"]').type(DATA.queryUsedIn.table1); verifyResponseStatusCode('@explorePageSearch', 200); - cy.get(`[title="${DATA.queryUsedIn.table1}"]`).scrollIntoView().click(); + cy.get(`[title="${DATA.queryUsedIn.table1}"]`).click(); cy.clickOutside(); cy.get('[data-testid="save-btn"]').click(); @@ -76,7 +80,11 @@ describe('Query Entity', () => { '/api/v1/search/query?q=*&from=0&size=15&index=table_search_index', 'explorePageSearch' ); - visitEntityDetailsPage(DATA.term, DATA.serviceName, DATA.entity); + visitEntityDetailsPage({ + term: DATA.term, + serviceName: DATA.serviceName, + entity: DATA.entity, + }); cy.get('[data-testid="table_queries"]').click(); verifyResponseStatusCode('@fetchQuery', 200); @@ -120,7 +128,11 @@ describe('Query Entity', () => { '/api/v1/search/query?q=*&from=0&size=15&index=table_search_index', 'explorePageSearch' ); - visitEntityDetailsPage(DATA.term, DATA.serviceName, DATA.entity); + visitEntityDetailsPage({ + term: DATA.term, + serviceName: DATA.serviceName, + entity: DATA.entity, + }); cy.get('[data-testid="table_queries"]').click(); verifyResponseStatusCode('@fetchQuery', 200); @@ -147,7 +159,12 @@ describe('Query Entity', () => { '/api/v1/search/query?q=*&from=0&size=15&index=table_search_index', 'explorePageSearch' ); - visitEntityDetailsPage(DATA.term, DATA.serviceName, DATA.entity); + + visitEntityDetailsPage({ + term: DATA.term, + serviceName: DATA.serviceName, + entity: DATA.entity, + }); cy.get('[data-testid="table_queries"]').click(); verifyResponseStatusCode('@fetchQuery', 200); cy.get('[data-testid="query-entity-expand-button"]').click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RecentlyViewed.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RecentlyViewed.spec.js index 5369efd06c1..88b547948ed 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RecentlyViewed.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RecentlyViewed.spec.js @@ -55,7 +55,11 @@ describe('Recently viwed data assets', () => { it(`recently view section should have at max list of 5 entity`, () => { RECENTLY_VIEW_ENTITIES.map((entity, index) => { - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); interceptURL( 'GET', @@ -68,6 +72,9 @@ describe('Recently viwed data assets', () => { // need to add manual wait as we are dependant on local storage for recently view data cy.wait(500); + cy.get('[data-testid="recently-viewed-container"]') + .scrollIntoView() + .should('be.visible'); cy.get( `[data-testid="recently-viewed-container"] [title="${entity.displayName}"]` ) diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RestoreEntity.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RestoreEntity.spec.js index d583985e6dd..22d10beadf6 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RestoreEntity.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/RestoreEntity.spec.js @@ -78,11 +78,11 @@ describe('Restore entity functionality should work properly', () => { }); it('Soft Delete entity table', () => { - visitEntityDetailsPage( - ENTITY_TABLE.term, - ENTITY_TABLE.serviceName, - ENTITY_TABLE.entity - ); + visitEntityDetailsPage({ + term: ENTITY_TABLE.term, + serviceName: ENTITY_TABLE.serviceName, + entity: ENTITY_TABLE.entity, + }); cy.get('[data-testid="manage-button"]').click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/SchemaSearch.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/SchemaSearch.spec.js index af3ffbcb7d3..42908e64c43 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/SchemaSearch.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/SchemaSearch.spec.js @@ -14,6 +14,7 @@ /// import { interceptURL, verifyResponseStatusCode } from '../../common/common'; +import { searchServiceFromSettingPage } from '../../common/serviceUtils'; const schemaNames = ['sales', 'admin', 'anonymous', 'dip', 'gsmadmin_internal']; let serviceId; @@ -96,6 +97,8 @@ describe('Schema search', () => { verifyResponseStatusCode('@getServices', 200); + searchServiceFromSettingPage(serviceName); + // click on created service cy.get(`[data-testid="service-name-${serviceName}"]`).click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/UpdateDisplayName.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/UpdateDisplayName.spec.js index 83e41253b35..2b3270b5ad4 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/UpdateDisplayName.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/UpdateDisplayName.spec.js @@ -173,11 +173,11 @@ describe('Edit displayName for all the entities, services and verify breadcrumb' it(`database`, () => { interceptURL('GET', 'api/v1/databases/name/*', 'database'); - visitEntityDetailsPage( - SCHEMA_AND_DATABASE_DISPLAY_NAME.name, - SCHEMA_AND_DATABASE_DISPLAY_NAME.serviceName, - SCHEMA_AND_DATABASE_DISPLAY_NAME.entity - ); + visitEntityDetailsPage({ + term: SCHEMA_AND_DATABASE_DISPLAY_NAME.name, + serviceName: SCHEMA_AND_DATABASE_DISPLAY_NAME.serviceName, + entity: SCHEMA_AND_DATABASE_DISPLAY_NAME.entity, + }); cy.log(SCHEMA_AND_DATABASE_DISPLAY_NAME.database); cy.get('[data-testid="breadcrumb"]') .contains(SCHEMA_AND_DATABASE_DISPLAY_NAME.database) @@ -194,11 +194,11 @@ describe('Edit displayName for all the entities, services and verify breadcrumb' it(`databaseSchema`, () => { interceptURL('GET', 'api/v1/databaseSchemas/name/*', 'databaseSchemas'); - visitEntityDetailsPage( - SCHEMA_AND_DATABASE_DISPLAY_NAME.name, - SCHEMA_AND_DATABASE_DISPLAY_NAME.serviceName, - SCHEMA_AND_DATABASE_DISPLAY_NAME.entity - ); + visitEntityDetailsPage({ + term: SCHEMA_AND_DATABASE_DISPLAY_NAME.name, + serviceName: SCHEMA_AND_DATABASE_DISPLAY_NAME.serviceName, + entity: SCHEMA_AND_DATABASE_DISPLAY_NAME.entity, + }); cy.get('[data-testid="breadcrumb"]') .contains(SCHEMA_AND_DATABASE_DISPLAY_NAME.schema) .click(); @@ -214,7 +214,11 @@ describe('Edit displayName for all the entities, services and verify breadcrumb' Object.values(ENTITIES_DISPLAY_NAME).map((entity) => { it(`${entity.entity}`, () => { - visitEntityDetailsPage(entity.name, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); updateDisplayName(entity.displayName, `/api/v1/${entity.entity}/*`); entity.breadcrumb.map((value) => { cy.get('[data-testid="breadcrumb"]').should('contain', value); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddAndRemoveTierAndOwner.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddAndRemoveTierAndOwner.spec.js index 20ca8fae3ba..28a604dc768 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddAndRemoveTierAndOwner.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddAndRemoveTierAndOwner.spec.js @@ -77,13 +77,12 @@ describe('Add and Remove Owner', () => { Object.entries(ENTITIES).map(([key, value]) => { it(`${key} details page`, () => { - visitEntityDetailsPage( - value.term, - value.serviceName, - value.entity, - undefined, - value.entityType - ); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + entityType: value.entityType, + }); verifyResponseStatusCode('@entityPermission', 200); verifyResponseStatusCode('@activityFeed', 200); @@ -95,7 +94,11 @@ describe('Add and Remove Owner', () => { interceptURL('PATCH', '/api/v1/databaseSchemas/*', 'patchOwner'); interceptURL('GET', '/api/v1/*/name/*', 'schemaDetails'); const value = ENTITIES.table; - visitEntityDetailsPage(value.term, value.serviceName, value.entity); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + }); verifyResponseStatusCode('@entityPermission', 200); verifyResponseStatusCode('@activityFeed', 200); @@ -111,7 +114,11 @@ describe('Add and Remove Owner', () => { interceptURL('PATCH', '/api/v1/databases/*', 'patchOwner'); interceptURL('GET', '/api/v1/databases/name/*', 'databaseDetails'); const value = ENTITIES.table; - visitEntityDetailsPage(value.term, value.serviceName, value.entity); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + }); verifyResponseStatusCode('@entityPermission', 200); verifyResponseStatusCode('@activityFeed', 200); @@ -137,7 +144,12 @@ describe('Add and Remove Owner', () => { ); interceptURL('GET', '/api/v1/databases?service=*', 'databases'); const value = ENTITIES.table; - visitEntityDetailsPage(value.term, value.serviceName, value.entity); + + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + }); verifyResponseStatusCode('@entityPermission', 200); verifyResponseStatusCode('@activityFeed', 200); @@ -325,13 +337,12 @@ describe('Add and Remove Tier', () => { Object.entries(ENTITIES).map(([key, value]) => { it(`${key} details page`, () => { - visitEntityDetailsPage( - value.term, - value.serviceName, - value.entity, - undefined, - value.entityType - ); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + entityType: value.entityType, + }); verifyResponseStatusCode('@entityPermission', 200); verifyResponseStatusCode('@activityFeed', 200); @@ -342,7 +353,11 @@ describe('Add and Remove Tier', () => { it('database details page', () => { interceptURL('GET', '/api/v1/databases/name/*', 'databaseDetails'); const value = ENTITIES.table; - visitEntityDetailsPage(value.term, value.serviceName, value.entity); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + }); verifyResponseStatusCode('@entityPermission', 200); verifyResponseStatusCode('@activityFeed', 200); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddTeamAsOwner.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddTeamAsOwner.spec.js index 5681e9b7005..663fc9db9e9 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddTeamAsOwner.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/AddTeamAsOwner.spec.js @@ -75,11 +75,11 @@ describe.skip('Create a team and add that team as a owner of the entity', () => }); it('Add newly created group type team as owner, and remove it', () => { - visitEntityDetailsPage( - TEAM_DETAILS.term, - TEAM_DETAILS.serviceName, - TEAM_DETAILS.entity - ); + visitEntityDetailsPage({ + term: TEAM_DETAILS.term, + serviceName: TEAM_DETAILS.serviceName, + entity: TEAM_DETAILS.entity, + }); cy.get('[data-testid="edit-owner"]').should('be.visible').click(); cy.get('[data-testid="owner-select-teams-search-bar"]') @@ -105,11 +105,11 @@ describe.skip('Create a team and add that team as a owner of the entity', () => }); it('Remove newly created group type team as owner', () => { - visitEntityDetailsPage( - TEAM_DETAILS.term, - TEAM_DETAILS.serviceName, - TEAM_DETAILS.entity - ); + visitEntityDetailsPage({ + term: TEAM_DETAILS.term, + serviceName: TEAM_DETAILS.serviceName, + entity: TEAM_DETAILS.entity, + }); cy.get('[data-testid="edit-owner"]').should('be.visible').click(); cy.get('[data-testid="owner-select-teams-search-bar"]') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityAnnouncement.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityAnnouncement.spec.js index d030d4f96bf..e30fea35c21 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityAnnouncement.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityAnnouncement.spec.js @@ -37,7 +37,11 @@ describe('Entity Announcement', () => { 'announcementFeed' ); interceptURL('DELETE', '/api/v1/feed/*', 'deleteFeed'); - visitEntityDetailsPage(value.term, value.serviceName, value.entity); + visitEntityDetailsPage({ + term: value.term, + serviceName: value.serviceName, + entity: value.entity, + }); cy.get('[data-testid="manage-button"]').click(); cy.get('[data-testid="announcement-button"]').click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityVoting.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityVoting.spec.js index dfdc6e3b80d..e50796cb09c 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityVoting.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/EntityVoting.spec.js @@ -39,11 +39,11 @@ describe('Check if voting work properly in entities', () => { ); interceptURL('PUT', `/api/v1/${apiEntity}/*/vote`, 'upVoting'); - visitEntityDetailsPage( - entityDetails.term, - entityDetails.serviceName, - entityDetails.entity - ); + visitEntityDetailsPage({ + term: entityDetails.term, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + }); verifyResponseStatusCode('@getEntityDetail', 200); verifyResponseStatusCode('@getEntityPermission', 200); @@ -75,11 +75,11 @@ describe('Check if voting work properly in entities', () => { ); interceptURL('PUT', `/api/v1/${apiEntity}/*/vote`, 'downVoting'); - visitEntityDetailsPage( - entityDetails.term, - entityDetails.serviceName, - entityDetails.entity - ); + visitEntityDetailsPage({ + term: entityDetails.term, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + }); verifyResponseStatusCode('@getEntityDetail', 200); verifyResponseStatusCode('@getEntityPermission', 200); @@ -114,11 +114,11 @@ describe('Check if voting work properly in entities', () => { ); interceptURL('PUT', `/api/v1/${apiEntity}/*/vote`, 'unVoting'); - visitEntityDetailsPage( - entityDetails.term, - entityDetails.serviceName, - entityDetails.entity - ); + visitEntityDetailsPage({ + term: entityDetails.term, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + }); verifyResponseStatusCode('@getEntityDetail', 200); verifyResponseStatusCode('@getEntityPermission', 200); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.js index 383c5afd75b..378d21dd047 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Lineage.spec.js @@ -38,7 +38,11 @@ describe('Entity Details Page', () => { ENTITIES_LIST.map((entity) => { it(`Edit lineage should work for ${entity.entity} entity`, () => { - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); cy.get('[data-testid="lineage"]').should('be.visible').click(); // Check edit button should not be disabled @@ -55,11 +59,11 @@ describe('Lineage functionality', () => { }); it('toggle fullscreen mode', () => { - visitEntityDetailsPage( - tableEntity.term, - tableEntity.serviceName, - tableEntity.entity - ); + visitEntityDetailsPage({ + term: tableEntity.term, + serviceName: tableEntity.serviceName, + entity: tableEntity.entity, + }); cy.get('[data-testid="lineage"]').click(); // Enable fullscreen diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TagsAddRemove.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TagsAddRemove.spec.js index 90f82189baa..c3909ce584d 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TagsAddRemove.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TagsAddRemove.spec.js @@ -129,11 +129,11 @@ describe('Check if tags addition and removal flow working properly from tables', `/api/v1/${entityDetails.insideEntity ?? apiEntity}/*`, 'tagsChange' ); - visitEntityDetailsPage( - entityDetails.term, - entityDetails.serviceName, - entityDetails.entity - ); + visitEntityDetailsPage({ + term: entityDetails.term, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + }); verifyResponseStatusCode('@getEntityDetail', 200); verifyResponseStatusCode('@getEntityPermission', 200); @@ -188,11 +188,11 @@ describe('Check if tags addition and removal flow working properly from tables', 'getInsideColumnPermission' ); } - visitEntityDetailsPage( - entityDetails.term, - entityDetails.serviceName, - entityDetails.entity - ); + visitEntityDetailsPage({ + term: entityDetails.term, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + }); verifyResponseStatusCode('@getEntityDetail', 200); verifyResponseStatusCode('@getEntityPermission', 200); if (entityDetails.insideEntity) { diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Task.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Task.spec.js index 4efd41c1a35..266d8ec3c00 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Task.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/Task.spec.js @@ -30,8 +30,8 @@ import { DATABASE_SERVICE } from '../../constants/entityConstant'; import { SERVICE_CATEGORIES } from '../../constants/service.constants'; const ENTITY_TABLE = { - term: DATABASE_SERVICE.tables, - displayName: DATABASE_SERVICE.tables, + term: DATABASE_SERVICE.tables.name, + displayName: DATABASE_SERVICE.tables.name, entity: MYDATA_SUMMARY_OPTIONS.tables, serviceName: DATABASE_SERVICE.service.name, schemaName: DATABASE_SERVICE.schema.name, @@ -147,11 +147,11 @@ describe('Task flow should work', () => { 'getEntityDetails' ); - visitEntityDetailsPage( - ENTITY_TABLE.term, - ENTITY_TABLE.serviceName, - ENTITY_TABLE.entity - ); + visitEntityDetailsPage({ + term: ENTITY_TABLE.term, + serviceName: ENTITY_TABLE.serviceName, + entity: ENTITY_TABLE.entity, + }); cy.get('[data-testid="request-description"]').click(); @@ -174,11 +174,11 @@ describe('Task flow should work', () => { 'getEntityDetails' ); - visitEntityDetailsPage( - ENTITY_TABLE.term, - ENTITY_TABLE.serviceName, - ENTITY_TABLE.entity - ); + visitEntityDetailsPage({ + term: ENTITY_TABLE.term, + serviceName: ENTITY_TABLE.serviceName, + entity: ENTITY_TABLE.entity, + }); cy.get('[data-testid="request-entity-tags"]').click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TotalCountForTeams&Users.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TotalCountForTeams&Users.spec.js index 7b2b0c0972d..2f645097030 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TotalCountForTeams&Users.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Flow/TotalCountForTeams&Users.spec.js @@ -28,11 +28,11 @@ describe('Test if the total count of users and teams is correctly displayed in t it('Check total count of users and teams', () => { const token = localStorage.getItem('oidcIdToken'); - visitEntityDetailsPage( - TEAM_DETAILS.term, - TEAM_DETAILS.serviceName, - TEAM_DETAILS.entity - ); + visitEntityDetailsPage({ + term: TEAM_DETAILS.term, + serviceName: TEAM_DETAILS.serviceName, + entity: TEAM_DETAILS.entity, + }); cy.request({ method: 'GET', diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js index fce12163eec..e1bbe760fef 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js @@ -50,11 +50,11 @@ const goToProfilerTab = () => { `api/v1/tables/name/${serviceName}.*.${TEAM_ENTITY}?fields=*&include=all`, 'waitForPageLoad' ); - visitEntityDetailsPage( - TEAM_ENTITY, + visitEntityDetailsPage({ + term: TEAM_ENTITY, serviceName, - MYDATA_SUMMARY_OPTIONS.tables - ); + entity: MYDATA_SUMMARY_OPTIONS.tables, + }); verifyResponseStatusCode('@waitForPageLoad', 200); cy.get('[data-testid="profiler"]').should('be.visible').click(); @@ -595,7 +595,7 @@ describe.skip('Data Quality and Profiler should work properly', () => { it('Profiler matrix and test case graph should visible', () => { const { term, entity, serviceName, testCaseName } = DATA_QUALITY_SAMPLE_DATA_TABLE; - visitEntityDetailsPage(term, serviceName, entity); + visitEntityDetailsPage({ term, serviceName, entity }); cy.get('[data-testid="entity-header-display-name"]') .contains(term) .should('be.visible'); @@ -650,7 +650,7 @@ describe.skip('Data Quality and Profiler should work properly', () => { `api/v1/tables/name/${serviceName}.*.${term}?fields=*&include=all`, 'waitForPageLoad' ); - visitEntityDetailsPage(term, serviceName, entity); + visitEntityDetailsPage({ term, serviceName, entity }); verifyResponseStatusCode('@waitForPageLoad', 200); cy.get('[data-testid="entity-header-display-name"]') .should('be.visible') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/EntityVersionPages.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/EntityVersionPages.spec.js index 48b8a188469..748f1451185 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/EntityVersionPages.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/EntityVersionPages.spec.js @@ -156,13 +156,12 @@ Object.entries(ENTITY_DETAILS_FOR_VERSION_TEST).map( }); it(`${entityType} version page should show removed tags changes properly`, () => { - visitEntityDetailsPage( - entityDetails.name, - entityDetails.serviceName, - entityDetails.entity, - undefined, - entityType - ); + visitEntityDetailsPage({ + term: entityDetails.name, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + entityType: entityType, + }); cy.get( '[data-testid="entity-right-panel"] [data-testid="edit-button"]' @@ -192,13 +191,12 @@ Object.entries(ENTITY_DETAILS_FOR_VERSION_TEST).map( }); it(`${entityType} version page should show owner changes properly`, () => { - visitEntityDetailsPage( - entityDetails.name, - entityDetails.serviceName, - entityDetails.entity, - undefined, - entityType - ); + visitEntityDetailsPage({ + term: entityDetails.name, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + entityType: entityType, + }); cy.get('[data-testid="version-button"]').as('versionButton'); @@ -254,13 +252,12 @@ Object.entries(ENTITY_DETAILS_FOR_VERSION_TEST).map( }); it(`${entityType} version page should show tier changes properly`, () => { - visitEntityDetailsPage( - entityDetails.name, - entityDetails.serviceName, - entityDetails.entity, - undefined, - entityType - ); + visitEntityDetailsPage({ + term: entityDetails.name, + serviceName: entityDetails.serviceName, + entity: entityDetails.entity, + entityType: entityType, + }); cy.get('[data-testid="version-button"]').as('versionButton'); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js index 5af5d7062c8..1097d7d72df 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js @@ -790,7 +790,11 @@ describe('Glossary page should work properly', () => { cy.contains('Adding a new Asset is easy, just give it a spin!').should( 'be.visible' ); - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); const parentPath = '[data-testid="entity-right-panel"] [data-testid="glossary-container"]'; diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/SearchIndexDetails.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/SearchIndexDetails.spec.js index f3e5ea42195..0b6043f08a5 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/SearchIndexDetails.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/SearchIndexDetails.spec.js @@ -154,13 +154,12 @@ describe('SearchIndexDetails page should work properly for data consumer role', }); it('All permissible actions on search index details page should work properly', () => { - visitEntityDetailsPage( - SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.name, - SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.service, - 'searchIndexes', - undefined, - 'Search Index' - ); + visitEntityDetailsPage({ + term: SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.name, + serviceName: SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.service, + entity: 'searchIndexes', + entityType: 'Search Index', + }); // Edit domain option should not be available cy.get(`[data-testid="entity-page-header"]`).then(($body) => { @@ -205,7 +204,9 @@ describe('Prerequisite for data steward role tests', () => { verifyResponseStatusCode('@getUserDetails', 200); - cy.get('[data-testid="edit-roles"]').click(); + cy.get('[role="tablist"] .ant-collapse-arrow').click(); + + cy.get('[data-testid="edit-roles-button"]').click(); cy.get('[data-testid="inline-edit-container"] #select-role').click(); @@ -230,13 +231,12 @@ describe('SearchIndexDetails page should work properly for data steward role', ( }); it('All permissible actions on search index details page should work properly', () => { - visitEntityDetailsPage( - SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.name, - SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.service, - 'searchIndexes', - undefined, - 'Search Index' - ); + visitEntityDetailsPage({ + term: SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.name, + serviceName: SEARCH_INDEX_DETAILS_FOR_DETAILS_PAGE_TEST.service, + entity: 'searchIndexes', + entityType: 'Search Index', + }); // Edit domain option should not be available cy.get(`[data-testid="entity-page-header"]`).then(($body) => { diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Tags.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Tags.spec.js index 4fdd4739ab1..8cb7fc890c1 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Tags.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Tags.spec.js @@ -206,7 +206,11 @@ describe('Tags page should work', () => { const entity = SEARCH_ENTITY_TABLE.table_3; const tag = 'Sensitive'; - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); cy.get('[data-testid="breadcrumb-link"]') .should('be.visible') @@ -271,7 +275,11 @@ describe('Tags page should work', () => { const tag = 'Personal'; const assignee = 'admin'; - visitEntityDetailsPage(entity.term, entity.serviceName, entity.entity); + visitEntityDetailsPage({ + term: entity.term, + serviceName: entity.serviceName, + entity: entity.entity, + }); cy.get('[data-testid="breadcrumb-link"]') .should('be.visible') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/postgres.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/postgres.spec.js index 15b08ccaf9d..82dbcd44d7e 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/postgres.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/postgres.spec.js @@ -165,7 +165,11 @@ describe('Postgres Ingestion', () => { `/api/v1/tables/name/${serviceName}.*.*${tableName}?fields=*&include=all`, 'entityDetailsPage' ); - visitEntityDetailsPage(tableName, serviceName, 'tables'); + visitEntityDetailsPage({ + term: tableName, + serviceName: serviceName, + entity: 'tables', + }); verifyResponseStatusCode('@entityDetailsPage', 200); interceptURL('GET', '/api/v1/queries?*', 'queriesTab'); cy.get('[data-testid="table_queries"]') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/redshiftWithDBT.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/redshiftWithDBT.spec.js index 82aa85f12f9..56efc6a40c2 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/redshiftWithDBT.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/redshiftWithDBT.spec.js @@ -229,6 +229,10 @@ describe('RedShift Ingestion', () => { verifyResponseStatusCode('@fetchClassifications', 200); + cy.get('[data-testid="data-summary-container"]') + .contains(DBT.classification) + .click(); + verifyResponseStatusCode('@getTagList', 200); // Verify DBT tag category is added cy.get('[data-testid="tag-name"]') @@ -240,7 +244,11 @@ describe('RedShift Ingestion', () => { .should('contain', DBT.tagName); // Verify DBT in table entity - visitEntityDetailsPage(REDSHIFT.DBTTable, REDSHIFT.serviceName, 'tables'); + visitEntityDetailsPage({ + term: REDSHIFT.DBTTable, + serviceName: REDSHIFT.serviceName, + entity: 'tables', + }); // Verify tags cy.get('[data-testid="entity-tags"]').should('contain', `${DBT.tagName}`); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/snowflake.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/snowflake.spec.js index 92571646e9f..8ca595b4e15 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/snowflake.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Service/snowflake.spec.js @@ -26,6 +26,9 @@ const serviceName = `${serviceType}-ct-test-${uuid()}`; const tableName = 'CUSTOMER'; const schema = 'TPCH_SF1000'; const description = `This is ${serviceName} description`; +const entityFqn = `${serviceName}.${Cypress.env( + 'snowflakeDatabase' +)}.${schema}.${tableName}`; describe('Snowflake Ingestion', () => { beforeEach(() => { @@ -69,7 +72,8 @@ describe('Snowflake Ingestion', () => { tableName, description, SERVICE_TYPE.Database, - 'tables' + 'tables', + entityFqn ); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx index 99b52d06b1e..8c1a75aa21f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Users/Users.component.tsx @@ -297,6 +297,7 @@ const Users = ({ diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.component.tsx index aaddc67f938..475cfb6e2fb 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.component.tsx @@ -36,6 +36,7 @@ import { UserProfileRolesProps } from './UserProfileRoles.interface'; const UserProfileRoles = ({ userRoles, updateUserDetails, + isUserAdmin, }: UserProfileRolesProps) => { const { t } = useTranslation(); @@ -52,7 +53,7 @@ const UserProfileRoles = ({ value: role.id, })); - if (!isAdminUser) { + if (!isUserAdmin) { options.push({ label: TERM_ADMIN, value: toLower(TERM_ADMIN), @@ -60,7 +61,7 @@ const UserProfileRoles = ({ } return options; - }, [roles, isAdminUser, getEntityName]); + }, [roles, isUserAdmin, getEntityName]); const fetchRoles = async () => { setIsRolesLoading(true); @@ -111,27 +112,27 @@ const UserProfileRoles = ({ () => ( } noDataPlaceholder={t('message.no-roles-assigned')} - showNoDataPlaceholder={!isAdminUser} + showNoDataPlaceholder={!isUserAdmin} /> ), - [userRoles, isAdminUser] + [userRoles, isUserAdmin] ); useEffect(() => { const defaultUserRoles = [ ...(userRoles?.map((role) => role.id) ?? []), - ...(isAdminUser ? [toLower(TERM_ADMIN)] : []), + ...(isUserAdmin ? [toLower(TERM_ADMIN)] : []), ]; setSelectedRoles(defaultUserRoles); - }, [isAdminUser, userRoles]); + }, [isUserAdmin, userRoles]); useEffect(() => { if (isRolesEdit && isEmpty(roles)) { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.interface.ts index 867202cb9fb..9d32da42131 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/Users/UsersProfile/UserProfileRoles/UserProfileRoles.interface.ts @@ -13,6 +13,7 @@ import { User } from '../../../../generated/entity/teams/user'; export interface UserProfileRolesProps { + isUserAdmin?: boolean; userRoles: User['roles']; updateUserDetails: (data: Partial) => Promise; }