fix(cypress): fix restore, advance search & data insight (#14684)

This commit is contained in:
Chirag Madlani 2024-01-11 22:23:39 +05:30 committed by GitHub
parent 241f3c68d7
commit 99b8e7988d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 32 additions and 181 deletions

View File

@ -445,6 +445,36 @@ export const deleteEntity = (entityName: string, endPoint: EntityType) => {
deletedEntityCommonChecks({ entityType: endPoint, deleted: true });
if (endPoint === EntityType.Table) {
interceptURL(
'GET',
'/api/v1/tables?databaseSchema=*&include=deleted',
'queryDeletedTables'
);
interceptURL(
'GET',
'/api/v1/databaseSchemas/name/*?fields=*&include=all',
'getDatabaseSchemas'
);
cy.get('[data-testid="breadcrumb-link"]').last().click();
verifyResponseStatusCode('@getDatabaseSchemas', 200);
cy.get('[data-testid="show-deleted"]')
.scrollIntoView()
.click({ waitForAnimations: true });
verifyResponseStatusCode('@queryDeletedTables', 200);
cy.get('[data-testid="table"] [data-testid="count"]').should(
'contain',
'1'
);
cy.get('.ant-table-row > :nth-child(1)').should('contain', entityName);
cy.get('.ant-table-row > :nth-child(1)').contains(entityName).click();
}
restoreEntity();
cy.reload();

View File

@ -1,172 +0,0 @@
/*
* Copyright 2023 Collate.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {
interceptURL,
toastNotification,
verifyResponseStatusCode,
visitEntityDetailsPage,
} from '../../common/common';
import { createEntityTable, hardDeleteService } from '../../common/EntityUtils';
import { DATA_ASSETS, DELETE_TERM } from '../../constants/constants';
import { DATABASE_SERVICE } from '../../constants/EntityConstant';
import { SERVICE_CATEGORIES } from '../../constants/service.constants';
const ENTITY_TABLE = {
term: DATABASE_SERVICE.entity.name,
displayName: DATABASE_SERVICE.entity.name,
entity: DATA_ASSETS.tables,
serviceName: DATABASE_SERVICE.service.name,
schemaName: DATABASE_SERVICE.schema.name,
entityType: 'Table',
};
describe('Restore entity functionality should work properly', () => {
before(() => {
cy.login();
cy.getAllLocalStorage().then((data) => {
const token = Object.values(data)[0].oidcIdToken;
createEntityTable({
token,
...DATABASE_SERVICE,
tables: [DATABASE_SERVICE.entity],
});
});
});
after(() => {
cy.login();
cy.getAllLocalStorage().then((data) => {
const token = Object.values(data)[0].oidcIdToken;
hardDeleteService({
token,
serviceFqn: ENTITY_TABLE.serviceName,
serviceType: SERVICE_CATEGORIES.DATABASE_SERVICES,
});
});
});
beforeEach(() => {
cy.login();
interceptURL(
'GET',
'api/v1/search/query?q=*&index=*&from=0&size=10&deleted=true&query_filter=*&sort_field=updatedAt&sort_order=desc',
'showDeletedTables'
);
interceptURL(
'GET',
'api/v1/search/query?q=*&index=*&from=0&size=10&deleted=false&query_filter=*&sort_field=updatedAt&sort_order=desc',
'nonDeletedTables'
);
});
it('Soft Delete entity table', () => {
visitEntityDetailsPage({
term: ENTITY_TABLE.term,
serviceName: ENTITY_TABLE.serviceName,
entity: ENTITY_TABLE.entity,
});
cy.get('[data-testid="manage-button"]').click();
cy.get('[data-testid="delete-button-title"]').click();
cy.get('.ant-modal-header').should(
'contain',
`Delete ${ENTITY_TABLE.displayName}`
);
cy.get('[data-testid="soft-delete-option"]').click();
cy.get('[data-testid="confirm-button"]').should('be.disabled');
cy.get('[data-testid="confirmation-text-input"]').type(DELETE_TERM);
interceptURL(
'DELETE',
'api/v1/tables/*?hardDelete=false&recursive=true',
'softDeleteTable'
);
cy.get('[data-testid="confirm-button"]').should('not.be.disabled');
cy.get('[data-testid="confirm-button"]').click();
verifyResponseStatusCode('@softDeleteTable', 200);
toastNotification('Table deleted successfully!', false);
});
it('Check Soft Deleted entity table', () => {
cy.get('[data-testid="app-bar-item-explore"]').click();
cy.get('[data-testid="tables-tab"]').click();
verifyResponseStatusCode('@nonDeletedTables', 200);
cy.get('[data-testid="show-deleted"]').should('exist').click();
verifyResponseStatusCode('@showDeletedTables', 200);
cy.get('[data-testid="entity-header-display-name"]')
.contains(ENTITY_TABLE.displayName)
.click();
cy.get('[data-testid="entity-header-display-name"]').should(
'contain',
ENTITY_TABLE.displayName
);
cy.get('[data-testid="deleted-badge"]')
.scrollIntoView()
.should('be.visible');
});
it("Check Soft Deleted table in it's Schema", () => {
cy.get('[data-testid="app-bar-item-explore"]').click();
cy.get('[data-testid="tables-tab"]').click();
verifyResponseStatusCode('@nonDeletedTables', 200);
cy.get('[data-testid="show-deleted"]').click();
verifyResponseStatusCode('@showDeletedTables', 200);
cy.get('[data-testid="entity-header-display-name"]')
.contains(ENTITY_TABLE.displayName)
.click();
cy.get('[data-testid="deleted-badge"]').should('be.visible');
interceptURL(
'GET',
'/api/v1/databaseSchemas/name/*?fields=*&include=all',
'getDatabaseSchemas'
);
cy.get('[data-testid="breadcrumb"]')
.scrollIntoView()
.contains(ENTITY_TABLE.schemaName)
.click();
verifyResponseStatusCode('@getDatabaseSchemas', 200);
interceptURL(
'GET',
'/api/v1/tables?databaseSchema=*&include=deleted',
'queryDeletedTables'
);
cy.get('[data-testid="show-deleted"]').scrollIntoView();
cy.get('[data-testid="show-deleted"]').click({ waitForAnimations: true });
verifyResponseStatusCode('@queryDeletedTables', 200);
cy.get('[data-testid="table"] [data-testid="count"]').should(
'contain',
'1'
);
cy.get('.ant-table-row > :nth-child(1)').should(
'contain',
ENTITY_TABLE.displayName
);
});
});

View File

@ -64,15 +64,12 @@ describe(`Advanced search quick filters should work properly for assets`, () =>
const querySearchURL = `/api/v1/search/query?*index=${
asset.searchIndex
}*query_filter=*should*${filter.key}*${encodeURI(
Cypress._.toLower(filter.selectOption1)
Cypress._.toLower(filter.selectOption1).replace(' ', '+')
)}*`;
interceptURL('GET', querySearchURL, 'querySearchAPI');
cy.get('[data-testid="update-btn"]')
.should('exist')
.and('be.visible')
.click();
cy.get('[data-testid="update-btn"]').click();
verifyResponseStatusCode('@querySearchAPI', 200);
});

View File

@ -55,10 +55,6 @@ export const COMMON_DROPDOWN_ITEMS = [
label: t('label.service-type'),
key: 'serviceType',
},
{
label: t('label.column'),
key: 'columns.name.keyword',
},
];
export const TABLE_DROPDOWN_ITEMS = [