mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-02 11:39:12 +00:00
Fixed Failing cypress part 2 (#7784)
* Fixed Failing cypress part 2 * added api wait for search * added test for profiler check * fixed failing cypress * fixed failing tests
This commit is contained in:
parent
6cfd16925a
commit
2c3802525f
@ -422,7 +422,7 @@ export const visitEntityDetailsPage = (term, serviceName, entity) => {
|
||||
.click();
|
||||
} else {
|
||||
// if term is not available in search suggestion, hitting enter to search box so it will redirect to explore page
|
||||
cy.get('body').click();
|
||||
cy.get('body').click(1, 1);
|
||||
cy.get('[data-testid="searchBox"]').type('{enter}');
|
||||
|
||||
cy.get(`[data-testid="${entity}-tab"]`).should('be.visible').click();
|
||||
@ -439,15 +439,23 @@ export const visitEntityDetailsPage = (term, serviceName, entity) => {
|
||||
});
|
||||
|
||||
verifyResponseStatusCode('@getEntityDetails', 200);
|
||||
cy.get('body').click();
|
||||
cy.get('body').then(($body) => {
|
||||
if ($body.find('[data-testid="suggestion-overlay"]').length) {
|
||||
cy.get('[data-testid="suggestion-overlay"]').click(1, 1);
|
||||
}
|
||||
});
|
||||
cy.get('body').click(1, 1);
|
||||
cy.get('[data-testid="searchBox"]').clear();
|
||||
};
|
||||
|
||||
// add new tag to entity and its table
|
||||
export const addNewTagToEntity = (entity, term) => {
|
||||
searchEntity(entity);
|
||||
export const addNewTagToEntity = (entityObj, term) => {
|
||||
visitEntityDetailsPage(
|
||||
entityObj.term,
|
||||
entityObj.serviceName,
|
||||
entityObj.entity
|
||||
);
|
||||
cy.wait(500);
|
||||
cy.get('[data-testid="table-link"]').first().contains(entity).click();
|
||||
cy.get('[data-testid="tags"] > [data-testid="add-tag"]')
|
||||
.eq(0)
|
||||
.should('be.visible')
|
||||
@ -651,7 +659,12 @@ export const toastNotification = (msg) => {
|
||||
cy.get('.Toastify__close-button').should('be.visible').click();
|
||||
};
|
||||
|
||||
export const addCustomPropertiesForEntity = (entityType, customType, value) => {
|
||||
export const addCustomPropertiesForEntity = (
|
||||
entityType,
|
||||
customType,
|
||||
value,
|
||||
entityObj
|
||||
) => {
|
||||
const propertyName = `entity${entityType.name}test${uuid()}`;
|
||||
|
||||
//Add Custom property for selected entity
|
||||
@ -677,19 +690,12 @@ export const addCustomPropertiesForEntity = (entityType, customType, value) => {
|
||||
cy.clickOnLogo();
|
||||
|
||||
//Checking the added property in Entity
|
||||
//cy.contains(entityType.name).scrollIntoView().should('be.visible').click();
|
||||
|
||||
cy.get(`[data-testid*="${entityType.name}"] > .ant-btn > span`)
|
||||
.scrollIntoView()
|
||||
.should('be.visible')
|
||||
.click();
|
||||
|
||||
cy.wait(1000);
|
||||
cy.get('[data-testid="table-link"]')
|
||||
.first()
|
||||
.should('exist')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
visitEntityDetailsPage(
|
||||
entityObj.term,
|
||||
entityObj.serviceName,
|
||||
entityObj.entity
|
||||
);
|
||||
|
||||
cy.get('[data-testid="Custom Properties"]')
|
||||
.should('exist')
|
||||
|
||||
@ -68,20 +68,15 @@ export const SEARCH_ENTITY_DASHBOARD = {
|
||||
serviceName: 'sample_superset',
|
||||
},
|
||||
};
|
||||
|
||||
// Note:- Please do not change term name of pipeline
|
||||
export const SEARCH_ENTITY_PIPELINE = {
|
||||
pipeline_1: {
|
||||
term: 'Snowflake ETL',
|
||||
term: 'dim_product_etl',
|
||||
entity: MYDATA_SUMMARY_OPTIONS.pipelines,
|
||||
serviceName: 'sample_airflow',
|
||||
},
|
||||
pipeline_2: {
|
||||
term: 'Hive ETL',
|
||||
entity: MYDATA_SUMMARY_OPTIONS.pipelines,
|
||||
serviceName: 'sample_airflow',
|
||||
},
|
||||
pipeline_3: {
|
||||
term: 'Trino ETL',
|
||||
term: 'dim_location_etl',
|
||||
entity: MYDATA_SUMMARY_OPTIONS.pipelines,
|
||||
serviceName: 'sample_airflow',
|
||||
},
|
||||
@ -208,6 +203,7 @@ export const ENTITIES = {
|
||||
integerValue: '45',
|
||||
stringValue: 'This is string propery',
|
||||
markdownValue: 'This is markdown value',
|
||||
entityObj: SEARCH_ENTITY_TABLE.table_1,
|
||||
},
|
||||
entity_topic: {
|
||||
name: 'topic',
|
||||
@ -215,6 +211,7 @@ export const ENTITIES = {
|
||||
integerValue: '23',
|
||||
stringValue: 'This is string propery',
|
||||
markdownValue: 'This is markdown value',
|
||||
entityObj: SEARCH_ENTITY_TOPIC.topic_1,
|
||||
},
|
||||
entity_dashboard: {
|
||||
name: 'dashboard',
|
||||
@ -222,6 +219,7 @@ export const ENTITIES = {
|
||||
integerValue: '14',
|
||||
stringValue: 'This is string propery',
|
||||
markdownValue: 'This is markdown value',
|
||||
entityObj: SEARCH_ENTITY_DASHBOARD.dashboard_1,
|
||||
},
|
||||
entity_pipeline: {
|
||||
name: 'pipeline',
|
||||
@ -229,6 +227,7 @@ export const ENTITIES = {
|
||||
integerValue: '78',
|
||||
stringValue: 'This is string propery',
|
||||
markdownValue: 'This is markdown value',
|
||||
entityObj: SEARCH_ENTITY_PIPELINE.pipeline_1,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ import { LOGIN, SERVICE_TYPE } from '../../constants/constants';
|
||||
|
||||
const serviceType = 'Metabase';
|
||||
const serviceName = `${serviceType}-ct-test-${uuid()}`;
|
||||
const tableName = 'jaffle_shop';
|
||||
const tableName = 'jaffle_shop dashboard';
|
||||
const description = `This is ${serviceName} description`;
|
||||
|
||||
describe('Metabase Ingestion', () => {
|
||||
|
||||
@ -15,15 +15,24 @@ import { addCustomPropertiesForEntity, deleteCreatedProperty, editCreatedPropert
|
||||
import { ENTITIES, LOGIN } from '../../constants/constants';
|
||||
|
||||
describe('Custom Properties should work properly', () => {
|
||||
beforeEach(() => {
|
||||
before(() => {
|
||||
cy.clearLocalStorageSnapshot();
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
|
||||
cy.saveLocalStorage('localstorage');
|
||||
});
|
||||
beforeEach(() => {
|
||||
cy.log('Restoring local storage snapshot');
|
||||
cy.restoreLocalStorage('localstorage');
|
||||
cy.clickOnLogo();
|
||||
interceptURL('GET', '/api/v1/users*', 'settingsPage');
|
||||
cy.get('[data-testid="appbar-item-settings"]').should('be.visible').click();
|
||||
verifyResponseStatusCode('@settingsPage', 200);
|
||||
cy.get('[data-testid="settings-left-panel"]').should('be.visible');
|
||||
});
|
||||
|
||||
it('Add Integer custom property for all Entities', () => {
|
||||
Object.values(ENTITIES).forEach((entity) => {
|
||||
Object.values(ENTITIES).forEach((entity) => {
|
||||
it(`Add Integer custom property for ${entity.name} Entities`, () => {
|
||||
interceptURL(
|
||||
'GET',
|
||||
`/api/v1/metadata/types/name/${entity.name}*`,
|
||||
@ -41,7 +50,8 @@ describe('Custom Properties should work properly', () => {
|
||||
const propertyName = addCustomPropertiesForEntity(
|
||||
entity,
|
||||
'integer',
|
||||
entity.integerValue
|
||||
entity.integerValue,
|
||||
entity.entityObj
|
||||
);
|
||||
//Navigating back to custom properties page
|
||||
cy.get('[data-testid="appbar-item-settings"]')
|
||||
@ -60,8 +70,8 @@ describe('Custom Properties should work properly', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('Add String custom property for all Entities', () => {
|
||||
Object.values(ENTITIES).forEach((entity) => {
|
||||
Object.values(ENTITIES).forEach((entity) => {
|
||||
it(`Add String custom property for ${entity.name} Entities`, () => {
|
||||
interceptURL(
|
||||
'GET',
|
||||
`/api/v1/metadata/types/name/${entity.name}*`,
|
||||
@ -79,7 +89,8 @@ describe('Custom Properties should work properly', () => {
|
||||
const propertyName = addCustomPropertiesForEntity(
|
||||
entity,
|
||||
'string',
|
||||
entity.stringValue
|
||||
entity.stringValue,
|
||||
entity.entityObj
|
||||
);
|
||||
|
||||
//Navigating back to custom properties page
|
||||
@ -100,8 +111,8 @@ describe('Custom Properties should work properly', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('Add Markdown custom property for all Entities', () => {
|
||||
Object.values(ENTITIES).forEach((entity) => {
|
||||
Object.values(ENTITIES).forEach((entity) => {
|
||||
it(`Add Markdown custom property for ${entity.name} Entities`, () => {
|
||||
interceptURL(
|
||||
'GET',
|
||||
`/api/v1/metadata/types/name/${entity.name}*`,
|
||||
@ -119,7 +130,8 @@ describe('Custom Properties should work properly', () => {
|
||||
const propertyName = addCustomPropertiesForEntity(
|
||||
entity,
|
||||
'markdown',
|
||||
entity.markdownValue
|
||||
entity.markdownValue,
|
||||
entity.entityObj
|
||||
);
|
||||
//Navigating back to custom properties page
|
||||
cy.get('[data-testid="appbar-item-settings"]')
|
||||
|
||||
@ -13,25 +13,19 @@
|
||||
|
||||
/// <reference types="cypress" />
|
||||
|
||||
import { deleteCreatedService, descriptionBox, goToAddNewServicePage, handleIngestionRetry, interceptURL, login, mySqlConnectionInput, scheduleIngestion, searchEntity, testServiceCreationAndIngestion, uuid, verifyResponseStatusCode } from '../../common/common';
|
||||
import { DELETE_TERM, LOGIN, NEW_COLUMN_TEST_CASE, NEW_TABLE_TEST_CASE, NEW_TEST_SUITE, SERVICE_TYPE, TEAM_ENTITY } from '../../constants/constants';
|
||||
import { deleteCreatedService, descriptionBox, goToAddNewServicePage, handleIngestionRetry, interceptURL, login, mySqlConnectionInput, scheduleIngestion, testServiceCreationAndIngestion, uuid, verifyResponseStatusCode, visitEntityDetailsPage } from '../../common/common';
|
||||
import { DELETE_TERM, LOGIN, MYDATA_SUMMARY_OPTIONS, NEW_COLUMN_TEST_CASE, NEW_TABLE_TEST_CASE, NEW_TEST_SUITE, SERVICE_TYPE, TEAM_ENTITY } from '../../constants/constants';
|
||||
|
||||
const serviceType = 'Mysql';
|
||||
const serviceName = `${serviceType}-ct-test-${uuid()}`;
|
||||
const columnTestName = `${NEW_COLUMN_TEST_CASE.column}_${NEW_COLUMN_TEST_CASE.type}`;
|
||||
|
||||
const goToProfilerTab = () => {
|
||||
// click on the 1st result and go to entity details page and follow the entity
|
||||
interceptURL(
|
||||
'GET',
|
||||
'/api/v1/tables/name/*?fields=columns,usageSummary,followers,joins,tags,owner,dataModel,profile,tests,tableConstraints,extension&include=all',
|
||||
'getEntityDetails'
|
||||
visitEntityDetailsPage(
|
||||
TEAM_ENTITY,
|
||||
serviceName,
|
||||
MYDATA_SUMMARY_OPTIONS.tables
|
||||
);
|
||||
cy.get('[data-testid="table-link"]')
|
||||
.first()
|
||||
.contains(TEAM_ENTITY, { matchCase: false })
|
||||
.click();
|
||||
verifyResponseStatusCode('@getEntityDetails', 200);
|
||||
|
||||
cy.get('[data-testid="Profiler & Data Quality"]')
|
||||
.should('be.visible')
|
||||
@ -62,7 +56,6 @@ describe('Data Quality and Profiler should work properly', () => {
|
||||
it('Add Profiler ingestion', () => {
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
searchEntity(TEAM_ENTITY);
|
||||
goToProfilerTab();
|
||||
|
||||
cy.get('[data-testid="no-profiler-placeholder"]').should('be.visible');
|
||||
@ -107,17 +100,18 @@ describe('Data Quality and Profiler should work properly', () => {
|
||||
.click();
|
||||
|
||||
handleIngestionRetry('database', true, 0, 'profiler');
|
||||
});
|
||||
|
||||
// check if profiler is ingested properly
|
||||
searchEntity(TEAM_ENTITY, false);
|
||||
it('Check if profiler is ingested properly or not', () => {
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
goToProfilerTab();
|
||||
cy.get('[data-testid="no-profiler-placeholder"]').should('not.exist');
|
||||
});
|
||||
})
|
||||
|
||||
it('Add table test case with new test suite', () => {
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
searchEntity(TEAM_ENTITY);
|
||||
goToProfilerTab();
|
||||
|
||||
cy.get('[data-testid="profiler-add-table-test-btn"]')
|
||||
@ -182,7 +176,6 @@ describe('Data Quality and Profiler should work properly', () => {
|
||||
const testName = `${TEAM_ENTITY}_${NEW_TABLE_TEST_CASE.type}`;
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
searchEntity(TEAM_ENTITY);
|
||||
goToProfilerTab();
|
||||
|
||||
cy.get('[data-testid="profiler-switch"] > :nth-child(2)')
|
||||
@ -213,7 +206,6 @@ describe('Data Quality and Profiler should work properly', () => {
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
|
||||
searchEntity(TEAM_ENTITY);
|
||||
goToProfilerTab();
|
||||
|
||||
cy.get('[data-testid="profiler-switch"] > :nth-child(2)')
|
||||
@ -249,7 +241,6 @@ describe('Data Quality and Profiler should work properly', () => {
|
||||
it('Add Column test case should work properly', () => {
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
searchEntity(TEAM_ENTITY);
|
||||
goToProfilerTab();
|
||||
cy.get('[data-testid="add-test-id"]')
|
||||
.scrollIntoView()
|
||||
@ -302,7 +293,6 @@ describe('Data Quality and Profiler should work properly', () => {
|
||||
it('Edit column test case should work properly', () => {
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
searchEntity(TEAM_ENTITY);
|
||||
interceptURL('GET', '/api/v1/testCase?*', 'testCase');
|
||||
goToProfilerTab();
|
||||
verifyResponseStatusCode('@testCase', 200);
|
||||
@ -330,7 +320,6 @@ describe('Data Quality and Profiler should work properly', () => {
|
||||
it('Delete Column Test Case should work properly', () => {
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
searchEntity(TEAM_ENTITY);
|
||||
interceptURL('GET', '/api/v1/testCase?*', 'testCase');
|
||||
goToProfilerTab();
|
||||
verifyResponseStatusCode('@testCase', 200);
|
||||
|
||||
@ -103,7 +103,7 @@ describe('Tags page should work', () => {
|
||||
});
|
||||
|
||||
it('Use newly created tag to any entity should work', () => {
|
||||
const entity = SEARCH_ENTITY_TABLE.table_2.term;
|
||||
const entity = SEARCH_ENTITY_TABLE.table_2;
|
||||
addNewTagToEntity(entity, `${NEW_TAG_CATEGORY.name}.${NEW_TAG.name}`);
|
||||
});
|
||||
|
||||
|
||||
@ -28,19 +28,24 @@ const TEAM_DETAILS = {
|
||||
};
|
||||
|
||||
describe('Teams flow should work properly', () => {
|
||||
beforeEach(() => {
|
||||
before(() => {
|
||||
cy.clearLocalStorageSnapshot();
|
||||
login(LOGIN.username, LOGIN.password);
|
||||
cy.goToHomePage();
|
||||
cy.saveLocalStorage('localstorage');
|
||||
});
|
||||
beforeEach(() => {
|
||||
cy.log('Restoring local storage snapshot');
|
||||
cy.restoreLocalStorage('localstorage');
|
||||
cy.clickOnLogo();
|
||||
|
||||
cy.get('[data-testid="appbar-item-settings"]').should('be.visible').click();
|
||||
interceptURL('GET', '/api/v1/users*', 'getTeams');
|
||||
|
||||
//Clicking on teams
|
||||
cy.get('[data-menu-id*="teams"]')
|
||||
.should('exist')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
|
||||
verifyResponseStatusCode('@getTeams', 200);
|
||||
});
|
||||
|
||||
it('Add new team', () => {
|
||||
@ -431,23 +436,6 @@ describe('Teams flow should work properly', () => {
|
||||
.should('exist')
|
||||
.should('be.disabled');
|
||||
|
||||
cy.get('[data-testid="discard-button"]')
|
||||
.should('exist')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
|
||||
cy.get('[data-testid="manage-button"]')
|
||||
.should('exist')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
|
||||
cy.get('[data-menu-id*="delete-button"]').should('be.visible');
|
||||
|
||||
cy.get('[data-testid="delete-button-title"]')
|
||||
.should('exist')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
|
||||
//Check if soft delete option is present
|
||||
cy.get('[data-testid="soft-delete-option"]')
|
||||
.should('contain', TEAM_DETAILS.name)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user