Skip to content

Commit

Permalink
tests(cypress): add navigation in search test (datahub-project#9545)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kunal-kankriya authored Jan 3, 2024
1 parent 21075e6 commit 2e3141e
Showing 1 changed file with 102 additions and 54 deletions.
156 changes: 102 additions & 54 deletions smoke-test/tests/cypress/cypress/e2e/search/query_and_filter_search.js
Original file line number Diff line number Diff line change
@@ -1,57 +1,105 @@
const datasetNames = {
dashboardsType: "Baz Dashboard",
pipelinesType: "Users",
MlmoduleType: "cypress-model",
glossaryTermsType: "CypressColumnInfoType",
tags: "some-cypress-feature-1",
hivePlatform: "cypress_logging_events",
airflowPlatform: "User Creations",
awsPlatform: "project/root/events/logging_events_bckp",
hdfsPlatform: "SampleHdfsDataset"
};

const searchToExecute = (value) => {
cy.get("input[data-testid=search-input]").eq(0).type(`${value}{enter}`);
cy.waitTextPresent("Type");
};

const selectFilteredEntity = (textToClick, entity, url) => {
cy.get(`[data-testid=filter-dropdown-${textToClick}]`).click({ force: true });
cy.get(`[data-testid="filter-option-${entity}"]`).click({ force: true });
cy.get("[data-testid=update-filters]").click({ force: true });
cy.url().should("include", `${url}`);
cy.get("[data-testid=update-filters]").should("not.be.visible");
cy.get('.ant-pagination-next').scrollIntoView().should('be.visible');
};

const verifyFilteredEntity = (text) => {
cy.get('.ant-typography').contains(text).should('be.visible');
};

describe("auto-complete dropdown, filter plus query search test", () => {

beforeEach(() => {
cy.loginWithCredentials();
cy.visit('/');
});

it.skip("Verify the 'filter by type' section + query", () => {

//Dashboard
searchToExecute("*");
selectFilteredEntity("Type", "Dashboards", "filter__entityType");
cy.clickOptionWithText(datasetNames.dashboardsType);
verifyFilteredEntity('Dashboard');

//Ml Models
searchToExecute("*");
selectFilteredEntity("Type", "ML Models", "filter__entityType");
cy.clickOptionWithText(datasetNames.MlmoduleType);
verifyFilteredEntity('ML Model');

//Piplines
searchToExecute("*");
selectFilteredEntity("Type", "Pipelines", "filter__entityType");
cy.clickOptionWithText(datasetNames.pipelinesType);
verifyFilteredEntity('Pipeline');

});

it("Verify the 'filter by Glossary term' section + query", () => {

//Glossary Term
searchToExecute("*");
selectFilteredEntity("Type", "Glossary Terms", "filter__entityType");
cy.clickOptionWithText(datasetNames.glossaryTermsType);
verifyFilteredEntity('Glossary Term');
});

it("Verify the 'filter by platform' section + query", () => {

//Hive
searchToExecute("*");
selectFilteredEntity("Platform", "Hive", "filter_platform");
cy.clickOptionWithText(datasetNames.hivePlatform);
verifyFilteredEntity('Hive');

//AWS S3
searchToExecute("*");
selectFilteredEntity("Platform", "AWS S3", "filter_platform");
cy.clickOptionWithText(datasetNames.awsPlatform);
verifyFilteredEntity('AWS S3');

//HDFS
searchToExecute("*");
selectFilteredEntity("Platform", "HDFS", "filter_platform");
cy.clickOptionWithText(datasetNames.hdfsPlatform);
verifyFilteredEntity('HDFS');

//Airflow
searchToExecute("*");
selectFilteredEntity("Platform", "Airflow", "filter_platform");
cy.clickOptionWithText(datasetNames.airflowPlatform);
verifyFilteredEntity('Airflow');
});

const platformQuerySearch = (query,test_id,active_filter) => {
cy.visit("/");
cy.get("input[data-testid=search-input]").type(query);
cy.get(`[data-testid="quick-filter-urn:li:dataPlatform:${test_id}"]`).click();
cy.focused().type("{enter}").wait(3000);
cy.url().should(
"include",
`?filter_platform___false___EQUAL___0=urn%3Ali%3AdataPlatform%3A${test_id}`
);
cy.get('[data-testid="search-input"]').should("have.value", query);
cy.get(`[data-testid="active-filter-${active_filter}"]`).should("be.visible");
cy.contains("of 0 results").should("not.exist");
cy.contains(/of [0-9]+ results/);
}

const entityQuerySearch = (query,test_id,active_filter) => {
cy.visit("/");
cy.get("input[data-testid=search-input]").type(query);
cy.get(`[data-testid="quick-filter-${test_id}"]`).click();
cy.focused().type("{enter}").wait(3000);
cy.url().should(
"include",
`?filter__entityType___false___EQUAL___0=${test_id}`
);
cy.get('[data-testid="search-input"]').should("have.value", query);
cy.get(`[data-testid="active-filter-${active_filter}"]`).should("be.visible");
cy.contains("of 0 results").should("not.exist");
cy.contains(/of [0-9]+ results/);
}

it("verify the 'filter by' section + query (result in search page with query applied + filter applied)", () => {
// Platform query plus filter test
cy.loginWithCredentials();
// Airflow
platformQuerySearch ("cypress","airflow","Airflow");
// BigQuery
platformQuerySearch ("cypress","bigquery","BigQuery");
// dbt
platformQuerySearch ("cypress","dbt","dbt");
// Hive
platformQuerySearch ("cypress","hive","Hive");

// Entity type query plus filter test
// Datasets
entityQuerySearch ("cypress","DATASET","Datasets");
// Dashboards
entityQuerySearch ("cypress","DASHBOARD","Dashboards");
// Pipelines
entityQuerySearch ("cypress","DATA_FLOW","Pipelines");
// Domains
entityQuerySearch ("Marketing","DOMAIN","Domains");
// Glossary Terms
entityQuerySearch ("cypress","GLOSSARY_TERM","Glossary Terms");
it("Verify the 'filter by tag' section + query", () => {

//CypressFeatureTag
searchToExecute("*");
selectFilteredEntity("Tag", "CypressFeatureTag", "filter_tags");
cy.clickOptionWithText(datasetNames.tags);
cy.mouseover('[data-testid="tag-CypressFeatureTag"]');
verifyFilteredEntity('Feature');
});
});
});

0 comments on commit 2e3141e

Please sign in to comment.