mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-20 14:33:35 +00:00
626 lines
17 KiB
JavaScript
626 lines
17 KiB
JavaScript
![]() |
/*
|
||
|
* 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 { MYSQL } from '../constants/service.constants';
|
||
|
import { interceptURL, verifyResponseStatusCode } from './common';
|
||
|
|
||
|
export const CONDITIONS_MUST = {
|
||
|
equalTo: {
|
||
|
name: '==',
|
||
|
filter: 'must',
|
||
|
},
|
||
|
anyIn: {
|
||
|
name: 'Any in',
|
||
|
filter: 'must',
|
||
|
},
|
||
|
contains: {
|
||
|
name: 'Contains',
|
||
|
filter: 'must',
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export const CONDITIONS_MUST_NOT = {
|
||
|
notEqualTo: {
|
||
|
name: '!=',
|
||
|
filter: 'must_not',
|
||
|
},
|
||
|
notIn: {
|
||
|
name: 'Not in',
|
||
|
filter: 'must_not',
|
||
|
},
|
||
|
notContains: {
|
||
|
name: 'Not contains',
|
||
|
filter: 'must_not',
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export const FIELDS = {
|
||
|
Owner: {
|
||
|
name: 'Owner',
|
||
|
testid: '[title="Owner"]',
|
||
|
searchCriteriaFirstGroup: 'admin',
|
||
|
responseValueFirstGroup: `"name":"admin"`,
|
||
|
searchCriteriaSecondGroup: 'Aaron Singh',
|
||
|
owner: true,
|
||
|
responseValueSecondGroup: 'aaron_singh2',
|
||
|
},
|
||
|
Tags: {
|
||
|
name: 'Tags',
|
||
|
testid: '[title="Tags"]',
|
||
|
searchCriteriaFirstGroup: 'PersonalData.Personal',
|
||
|
responseValueFirstGroup: '"tagFQN":"PersonalData.Personal"',
|
||
|
searchCriteriaSecondGroup: 'PersonalData.SpecialCategory',
|
||
|
responseValueSecondGroup: '"tagFQN":"PersonalData.SpecialCategory"',
|
||
|
},
|
||
|
Tiers: {
|
||
|
name: 'Tier',
|
||
|
testid: '[title="Tier"]',
|
||
|
searchCriteriaFirstGroup: 'Tier.Tier1',
|
||
|
responseValueFirstGroup: '"tagFQN":"Tier.Tier1"',
|
||
|
searchCriteriaSecondGroup: 'Tier.Tier2',
|
||
|
responseValueSecondGroup: '"tagFQN":"Tier.Tier2"',
|
||
|
},
|
||
|
Service: {
|
||
|
name: 'Service',
|
||
|
testid: '[title="Service"]',
|
||
|
searchCriteriaFirstGroup: 'sample_data',
|
||
|
responseValueFirstGroup: `"name":"sample_data"`,
|
||
|
searchCriteriaSecondGroup: MYSQL.serviceName,
|
||
|
responseValueSecondGroup: `"name":"${MYSQL.serviceName}"`,
|
||
|
},
|
||
|
Database: {
|
||
|
name: 'Database',
|
||
|
testid: '[title="Database"]',
|
||
|
searchCriteriaFirstGroup: 'default',
|
||
|
responseValueFirstGroup: `"name":"default"`,
|
||
|
searchCriteriaSecondGroup: 'ecommerce_db',
|
||
|
responseValueSecondGroup: `"name":"ecommerce_db"`,
|
||
|
},
|
||
|
Database_Schema: {
|
||
|
name: 'Database Schema',
|
||
|
testid: '[title="Database Schema"]',
|
||
|
searchCriteriaFirstGroup: 'shopify',
|
||
|
responseValueFirstGroup: `"name":"shopify"`,
|
||
|
searchCriteriaSecondGroup: 'cypress_integrations_test_db',
|
||
|
responseValueSecondGroup: `"name":"cypress_integrations_test_db"`,
|
||
|
},
|
||
|
Column: {
|
||
|
name: 'Column',
|
||
|
testid: '[title="Column"]',
|
||
|
searchCriteriaFirstGroup: 'SKU',
|
||
|
responseValueFirstGroup: '"name":"SKU"',
|
||
|
searchCriteriaSecondGroup: 'api_client_id',
|
||
|
responseValueSecondGroup: '"name":"api_client_id"',
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export const OPERATOR = {
|
||
|
AND: {
|
||
|
name: 'AND',
|
||
|
index: 1,
|
||
|
},
|
||
|
OR: {
|
||
|
name: 'OR',
|
||
|
index: 2,
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export const searchForField = (condition, fieldid, searchCriteria, index) => {
|
||
|
//Click on field dropdown
|
||
|
cy.get('.rule--field > .ant-select > .ant-select-selector').eq(index).should('be.visible').click();
|
||
|
//Select owner fields
|
||
|
cy.get(`${fieldid}`).eq(index).should('be.visible').click();
|
||
|
//Select the condition
|
||
|
cy.get('.rule--operator > .ant-select > .ant-select-selector').eq(index).should('be.visible').click();
|
||
|
|
||
|
cy.get(`[title="${condition}"]`).eq(index).should('be.visible').click();
|
||
|
//Verify the condition
|
||
|
cy.get('.rule--operator .ant-select-selection-item')
|
||
|
.should('be.visible')
|
||
|
.should('contain', `${condition}`);
|
||
|
cy.wait(500);
|
||
|
|
||
|
//Verify the search criteria for the condition
|
||
|
cy.get('body').then(($body) => {
|
||
|
if ($body.find('.ant-col > .ant-input').length) {
|
||
|
cy.get('.ant-col > .ant-input')
|
||
|
.eq(index)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria);
|
||
|
} else {
|
||
|
cy.get('.widget--widget > .ant-select > .ant-select-selector')
|
||
|
.eq(index)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
cy.wait(1000);
|
||
|
//if condition has a dropdown then select value from dropdown
|
||
|
cy.get('body').then(($body) => {
|
||
|
if ($body.find(`.ant-select-dropdown [title="${searchCriteria}"]`).length) {
|
||
|
cy.get(`[title = '${searchCriteria}']`)
|
||
|
.should('be.visible')
|
||
|
.trigger('mouseover')
|
||
|
.trigger('click');
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
export const goToAdvanceSearch = () => {
|
||
|
interceptURL('GET', '/api/v1/search/query?q=&index=*&from=0&size=10&deleted=false&query_filter=*&sort_field=_score&sort_order=desc', 'explorePage')
|
||
|
//Navigate to explore page
|
||
|
cy.get('[data-testid="appbar-item-explore"]')
|
||
|
.should('exist')
|
||
|
.and('be.visible')
|
||
|
.click();
|
||
|
verifyResponseStatusCode('@explorePage', 200);
|
||
|
|
||
|
cy.get('[data-testid="tables-tab"]')
|
||
|
.scrollIntoView()
|
||
|
.should('exist')
|
||
|
.and('be.visible');
|
||
|
cy.wait(1000);
|
||
|
//Click on advance search button
|
||
|
cy.get('[data-testid="advance-search-button"]').should('be.visible').click();
|
||
|
|
||
|
cy.wait(1000);
|
||
|
};
|
||
|
|
||
|
export const checkmustPaths = (
|
||
|
condition,
|
||
|
field,
|
||
|
searchCriteria,
|
||
|
index,
|
||
|
responseSearch
|
||
|
) => {
|
||
|
goToAdvanceSearch();
|
||
|
|
||
|
//Search with advance search
|
||
|
searchForField(condition, field, searchCriteria, index);
|
||
|
|
||
|
interceptURL(
|
||
|
'GET',
|
||
|
`/api/v1/search/query?q=&index=*&from=0&size=10&deleted=false&query_filter=*must*${searchCriteria}*&sort_field=_score&sort_order=desc`,
|
||
|
'search'
|
||
|
);
|
||
|
// //Click on apply filter
|
||
|
cy.get('.ant-btn-primary').contains('Apply').click();
|
||
|
|
||
|
cy.wait('@search').should(({ request, response }) => {
|
||
|
const resBody = JSON.stringify(response.body);
|
||
|
expect(request.url).to.contain(searchCriteria);
|
||
|
expect(resBody).to.include(`${responseSearch}`);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
export const checkmust_notPaths = (
|
||
|
condition,
|
||
|
field,
|
||
|
searchCriteria,
|
||
|
index,
|
||
|
responseSearch
|
||
|
) => {
|
||
|
goToAdvanceSearch();
|
||
|
|
||
|
//Search with advance search
|
||
|
searchForField(condition, field, searchCriteria, index);
|
||
|
interceptURL(
|
||
|
'GET',
|
||
|
`/api/v1/search/query?q=&index=*&from=0&size=10&deleted=false&query_filter=*must_not*${searchCriteria}*&sort_field=_score&sort_order=desc`,
|
||
|
'search_must_not'
|
||
|
);
|
||
|
//Click on apply filter
|
||
|
cy.get('.ant-btn-primary').contains('Apply').click();
|
||
|
|
||
|
cy.wait('@search_must_not').should(({ request, response }) => {
|
||
|
const resBody = JSON.stringify(response.body);
|
||
|
expect(request.url).to.contain(searchCriteria);
|
||
|
expect(resBody).to.not.include(`${responseSearch}`);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
export const addOwner = (ownerName) => {
|
||
|
cy.get('[data-testid="appbar-item-explore"]')
|
||
|
.should('exist')
|
||
|
.and('be.visible')
|
||
|
.click();
|
||
|
|
||
|
cy.get('#tabledatacard0-title')
|
||
|
.first()
|
||
|
.scrollIntoView()
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
|
||
|
interceptURL(
|
||
|
'GET',
|
||
|
'/api/v1/search/query?q=*%20AND%20teamType:Group&from=0&size=10&index=team_search_index',
|
||
|
'waitForTeams'
|
||
|
);
|
||
|
|
||
|
cy.get('[data-testid="edit-Owner-icon"]').should('be.visible').click();
|
||
|
|
||
|
verifyResponseStatusCode('@waitForTeams', 200);
|
||
|
//Clicking on users tab
|
||
|
cy.get('[data-testid="dropdown-tab"]')
|
||
|
.contains('Users')
|
||
|
.should('exist')
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
|
||
|
interceptURL(
|
||
|
'GET',
|
||
|
`api/v1/search/query?q=*${ownerName}*&from=0&size=*&index=*`,
|
||
|
'searchOwner'
|
||
|
);
|
||
|
cy.get('[data-testid="searchInputText"]')
|
||
|
.scrollIntoView()
|
||
|
.should('be.visible')
|
||
|
.and('exist')
|
||
|
.trigger('click')
|
||
|
.type(ownerName);
|
||
|
|
||
|
verifyResponseStatusCode('@searchOwner', 200);
|
||
|
|
||
|
interceptURL('PATCH', '/api/v1/tables/*', 'validateOwner');
|
||
|
//Selecting the user
|
||
|
cy.get('[data-testid="user-tag"]')
|
||
|
.contains(ownerName)
|
||
|
.should('exist')
|
||
|
.and('be.visible')
|
||
|
.click();
|
||
|
|
||
|
verifyResponseStatusCode('@validateOwner', 200);
|
||
|
|
||
|
cy.get('[data-testid="owner-link"]')
|
||
|
.scrollIntoView()
|
||
|
.invoke('text')
|
||
|
.then((text) => {
|
||
|
expect(text).equal(ownerName);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
export const addTier = (tier) => {
|
||
|
cy.get('[data-testid="appbar-item-explore"]')
|
||
|
.should('exist')
|
||
|
.and('be.visible')
|
||
|
.click();
|
||
|
|
||
|
cy.get('#tabledatacard0-title')
|
||
|
.first()
|
||
|
.scrollIntoView()
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
|
||
|
cy.get('[data-testid="edit-Tier-icon"]')
|
||
|
.scrollIntoView()
|
||
|
.should('exist')
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
|
||
|
cy.get('[data-testid="select-tier-buuton"]')
|
||
|
.first()
|
||
|
.should('exist')
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
|
||
|
cy.wait(1000);
|
||
|
|
||
|
cy.get('[data-testid="tags"] > [data-testid="add-tag"]').should(
|
||
|
'contain',
|
||
|
'Tier1'
|
||
|
);
|
||
|
};
|
||
|
|
||
|
export const addTag = (tag) => {
|
||
|
cy.get('[data-testid="appbar-item-explore"]')
|
||
|
.should('exist')
|
||
|
.and('be.visible')
|
||
|
.click();
|
||
|
|
||
|
cy.get('#tabledatacard0-title')
|
||
|
.first()
|
||
|
.scrollIntoView()
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
cy.get('[data-testid="tags"] > [data-testid="add-tag"]')
|
||
|
.eq(0)
|
||
|
.should('be.visible')
|
||
|
.scrollIntoView()
|
||
|
.click();
|
||
|
|
||
|
cy.wait(500);
|
||
|
cy.get('[data-testid="tag-selector"]').should('be.visible').click().type(tag);
|
||
|
cy.wait(500);
|
||
|
cy.get('.ant-select-item-option-content').should('be.visible').click();
|
||
|
cy.get(
|
||
|
'[data-testid="tags-wrapper"] > [data-testid="tag-container"]'
|
||
|
).contains(tag);
|
||
|
cy.get('[data-testid="saveAssociatedTag"]').should('be.visible').click();
|
||
|
cy.get('[data-testid="entity-tags"]')
|
||
|
.scrollIntoView()
|
||
|
.should('be.visible')
|
||
|
.contains(tag);
|
||
|
};
|
||
|
|
||
|
export const checkAddGroupWithOperator = (
|
||
|
condition_1,
|
||
|
condition_2,
|
||
|
fieldid,
|
||
|
searchCriteria_1,
|
||
|
searchCriteria_2,
|
||
|
index_1,
|
||
|
index_2,
|
||
|
operatorindex,
|
||
|
filter_1,
|
||
|
filter_2,
|
||
|
response_1,
|
||
|
response_2
|
||
|
) => {
|
||
|
goToAdvanceSearch();
|
||
|
//Click on field dropdown
|
||
|
cy.get('.rule--field > .ant-select > .ant-select-selector')
|
||
|
.eq(index_1)
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
//Select owner fields
|
||
|
cy.get(fieldid).eq(0).should('be.visible').click();
|
||
|
//Select the condition
|
||
|
cy.get('.rule--operator > .ant-select > .ant-select-selector')
|
||
|
.eq(index_1)
|
||
|
.should('be.visible')
|
||
|
.click();
|
||
|
|
||
|
cy.get(`[label="${condition_1}"]`).eq(index_1).should('be.visible').click();
|
||
|
//Verify the condition
|
||
|
cy.get('.rule--operator .ant-select-selection-item')
|
||
|
.should('be.visible')
|
||
|
.should('contain', `${condition_1}`);
|
||
|
cy.wait(500);
|
||
|
|
||
|
//Verify the search criteria for the condition
|
||
|
cy.get('body').then(($body) => {
|
||
|
if ($body.find('.ant-col > .ant-input').length) {
|
||
|
cy.get('.ant-col > .ant-input')
|
||
|
.eq(index_1)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_1);
|
||
|
} else {
|
||
|
cy.get('.widget--widget > .ant-select > .ant-select-selector')
|
||
|
.eq(index_1)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_1);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
cy.wait(1000);
|
||
|
//if condition has a dropdown then select value from dropdown
|
||
|
cy.get('body').then(($body) => {
|
||
|
if (
|
||
|
$body.find(`.ant-select-dropdown [title="${searchCriteria_1}"]`).length
|
||
|
) {
|
||
|
cy.get(`[title = '${searchCriteria_1}']`)
|
||
|
.should('be.visible')
|
||
|
.trigger('mouseover')
|
||
|
.trigger('click');
|
||
|
}
|
||
|
});
|
||
|
//To close the dropdown for anyin and notin condition
|
||
|
cy.get('.ant-modal-header').click();
|
||
|
|
||
|
//Select add-group button
|
||
|
cy.get('.action--ADD-GROUP').eq(0).should('be.visible').click();
|
||
|
|
||
|
//Select the AND/OR condition
|
||
|
cy.get(
|
||
|
`.group--conjunctions > .ant-btn-group > :nth-child(${operatorindex})`
|
||
|
).click();
|
||
|
|
||
|
//Click on field dropdown
|
||
|
cy.get('.rule--field').eq(index_2).should('be.visible').click();
|
||
|
|
||
|
cy.get(fieldid).eq(2).should('be.visible').click();
|
||
|
|
||
|
//Select the condition
|
||
|
cy.get('.rule--operator').eq(index_2).should('be.visible').click();
|
||
|
|
||
|
cy.get(`[label="${condition_2}"]`).eq(index_2).should('be.visible').click();
|
||
|
//Verify the condition
|
||
|
cy.get('.rule--operator .ant-select-selection-item')
|
||
|
.should('be.visible')
|
||
|
.should('contain', `${condition_2}`);
|
||
|
cy.wait(500);
|
||
|
|
||
|
//Verify the search criteria for the condition
|
||
|
cy.get('body').then(($body) => {
|
||
|
if ($body.find('.ant-col > .ant-input').length) {
|
||
|
cy.get('.ant-col > .ant-input')
|
||
|
.eq(index_2)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_2);
|
||
|
} else {
|
||
|
cy.get('.widget--widget > .ant-select > .ant-select-selector')
|
||
|
.eq(index_2)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_2);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
cy.wait(1000);
|
||
|
//if condition has a dropdown then select value from dropdown
|
||
|
cy.get('body').then(($body) => {
|
||
|
if (
|
||
|
$body.find(`.ant-select-dropdown [title="${searchCriteria_2}"]`).length &&
|
||
|
searchCriteria_2 === 'Tier.Tier2'
|
||
|
) {
|
||
|
cy.get(`[title = "${searchCriteria_2}"]`)
|
||
|
.eq(1)
|
||
|
.contains(searchCriteria_2)
|
||
|
.click({ force: true });
|
||
|
} else if (
|
||
|
$body.find(`.ant-select-dropdown [title="${searchCriteria_2}"]`).length
|
||
|
) {
|
||
|
cy.get(`[title = "${searchCriteria_2}"]`)
|
||
|
.contains(searchCriteria_2)
|
||
|
.click();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
interceptURL(
|
||
|
'GET',
|
||
|
`/api/v1/search/query?q=&index=*&from=0&size=10&deleted=false&query_filter=*${filter_1}*${searchCriteria_1}*${filter_2}*${response_2}*&sort_field=_score&sort_order=desc`,
|
||
|
'search'
|
||
|
);
|
||
|
|
||
|
//Click on apply filter
|
||
|
cy.get('.ant-btn-primary').contains('Apply').click();
|
||
|
|
||
|
cy.wait('@search').should(({ request, response }) => {
|
||
|
const resBody = JSON.stringify(response.body);
|
||
|
expect(request.url).to.contain(searchCriteria_1);
|
||
|
expect(resBody).to.not.include(response_2);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
export const checkAddRuleWithOperator = (
|
||
|
condition_1,
|
||
|
condition_2,
|
||
|
fieldid,
|
||
|
searchCriteria_1,
|
||
|
searchCriteria_2,
|
||
|
index_1,
|
||
|
index_2,
|
||
|
operatorindex,
|
||
|
filter_1,
|
||
|
filter_2,
|
||
|
response_1,
|
||
|
response_2
|
||
|
) => {
|
||
|
goToAdvanceSearch();
|
||
|
//Click on field dropdown
|
||
|
cy.get('.rule--field').eq(index_1).should('be.visible').click();
|
||
|
//Select owner fields
|
||
|
cy.get(fieldid).eq(0).should('be.visible').click();
|
||
|
//Select the condition
|
||
|
cy.get('.rule--operator').eq(index_1).should('be.visible').click();
|
||
|
|
||
|
cy.get(`[label="${condition_1}"]`).eq(index_1).should('be.visible').click();
|
||
|
//Verify the condition
|
||
|
cy.get('.rule--operator .ant-select-selection-item')
|
||
|
.should('be.visible')
|
||
|
.should('contain', `${condition_1}`);
|
||
|
cy.wait(500);
|
||
|
|
||
|
//Verify the search criteria for the condition
|
||
|
cy.get('body').then(($body) => {
|
||
|
if ($body.find('.ant-col > .ant-input').length) {
|
||
|
cy.get('.ant-col > .ant-input')
|
||
|
.eq(index_1)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_1);
|
||
|
} else {
|
||
|
cy.get('.widget--widget > .ant-select > .ant-select-selector')
|
||
|
.eq(index_1)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_1);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
cy.wait(1000);
|
||
|
//if condition has a dropdown then select value from dropdown
|
||
|
cy.get('body').then(($body) => {
|
||
|
if (
|
||
|
$body.find(`.ant-select-dropdown [title="${searchCriteria_1}"]`).length
|
||
|
) {
|
||
|
cy.get(`[title = '${searchCriteria_1}']`)
|
||
|
.should('be.visible')
|
||
|
.trigger('mouseover')
|
||
|
.trigger('click');
|
||
|
}
|
||
|
});
|
||
|
//To close the dropdown for anyin and notin condition
|
||
|
cy.get('.ant-modal-header').click();
|
||
|
|
||
|
//Select add-group button
|
||
|
cy.get('.action--ADD-RULE').eq(1).should('be.visible').click();
|
||
|
|
||
|
//Select the AND/OR condition
|
||
|
cy.get(
|
||
|
`.group--conjunctions > .ant-btn-group > :nth-child(${operatorindex})`
|
||
|
).click();
|
||
|
|
||
|
//Click on field dropdown
|
||
|
cy.get('.rule--field').eq(index_2).should('be.visible').click();
|
||
|
|
||
|
cy.get(fieldid).eq(2).should('be.visible').click();
|
||
|
|
||
|
//Select the condition
|
||
|
cy.get('.rule--operator').eq(index_2).should('be.visible').click();
|
||
|
|
||
|
cy.get(`[label="${condition_2}"]`).eq(index_2).should('be.visible').click();
|
||
|
//Verify the condition
|
||
|
cy.get('.rule--operator .ant-select-selection-item')
|
||
|
.should('be.visible')
|
||
|
.should('contain', `${condition_2}`);
|
||
|
cy.wait(500);
|
||
|
|
||
|
//Verify the search criteria for the condition
|
||
|
cy.get('body').then(($body) => {
|
||
|
if ($body.find('.ant-col > .ant-input').length) {
|
||
|
cy.get('.ant-col > .ant-input')
|
||
|
.eq(index_2)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_2);
|
||
|
} else {
|
||
|
cy.get('.widget--widget > .ant-select > .ant-select-selector')
|
||
|
.eq(index_2)
|
||
|
.should('be.visible')
|
||
|
.type(searchCriteria_2);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
cy.wait(1000);
|
||
|
//if condition has a dropdown then select value from dropdown
|
||
|
cy.get('body').then(($body) => {
|
||
|
if (
|
||
|
$body.find(`.ant-select-dropdown [title="${searchCriteria_2}"]`).length &&
|
||
|
searchCriteria_2 === 'Tier.Tier2'
|
||
|
) {
|
||
|
cy.get(`[title = "${searchCriteria_2}"]`)
|
||
|
.eq(1)
|
||
|
.contains(searchCriteria_2)
|
||
|
.click({ force: true });
|
||
|
} else if (
|
||
|
$body.find(`.ant-select-dropdown [title="${searchCriteria_2}"]`).length
|
||
|
) {
|
||
|
cy.get(`[title = "${searchCriteria_2}"]`)
|
||
|
.contains(searchCriteria_2)
|
||
|
.click();
|
||
|
}
|
||
|
});
|
||
|
|
||
|
interceptURL(
|
||
|
'GET',
|
||
|
`/api/v1/search/query?q=&index=*&from=0&size=10&deleted=false&query_filter=*${filter_1}*${searchCriteria_1}*${filter_2}*${response_2}*&sort_field=_score&sort_order=desc`,
|
||
|
'search'
|
||
|
);
|
||
|
|
||
|
//Click on apply filter
|
||
|
cy.get('.ant-btn-primary').contains('Apply').click();
|
||
|
|
||
|
cy.wait('@search').should(({ request, response }) => {
|
||
|
const resBody = JSON.stringify(response.body);
|
||
|
expect(request.url).to.contain(searchCriteria_1);
|
||
|
expect(resBody).to.not.include(response_2);
|
||
|
});
|
||
|
};
|