Skip to content

Commit bf333fc

Browse files
fix(cypress): split searchBarV2Redesign test to separated files
1 parent 75ee3c9 commit bf333fc

File tree

8 files changed

+355
-235
lines changed

8 files changed

+355
-235
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { applyGraphqlInterceptors, getThemeV2Interceptor } from "../utils";
2+
import { SearchV2Helper } from "./helpers/searchV2Helper";
3+
4+
const SAMPLE_ENTITY_NAME = "SampleCypressKafkaDataset";
5+
const SAMPLE_ENTITY_URN =
6+
"urn:li:dataset:(urn:li:dataPlatform:kafka,SampleCypressKafkaDataset,PROD)";
7+
8+
describe("searchBarV2 - Basic Search", () => {
9+
const helper = new SearchV2Helper();
10+
11+
const setupTest = (searchBarApi = "SEARCH_ACROSS_ENTITIES") => {
12+
applyGraphqlInterceptors([
13+
getThemeV2Interceptor(true),
14+
helper.getSearchBarInterceptor(true, searchBarApi),
15+
]);
16+
17+
cy.login();
18+
cy.skipIntroducePage();
19+
};
20+
21+
it("can handle all entities search", () => {
22+
setupTest();
23+
helper.goToHomePage();
24+
25+
helper.searchBarV2.type("*{enter}");
26+
27+
helper.ensureHasResults();
28+
});
29+
30+
it("can handle all entities search with an impossible query and find 0 results", () => {
31+
setupTest();
32+
helper.goToHomePage();
33+
34+
helper.searchBarV2.type("zzzzzzzzzzzzzqqqqqqqqqqqqqzzzzzzqzqzqzqzq{enter}");
35+
36+
helper.ensureHasNoResults();
37+
});
38+
39+
it("should show entity in response", () => {
40+
setupTest();
41+
helper.goToHomePage();
42+
43+
helper.searchBarV2.type(SAMPLE_ENTITY_NAME);
44+
helper.searchBarV2.ensureTextInViewAllSection(SAMPLE_ENTITY_NAME);
45+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
46+
});
47+
});
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { applyGraphqlInterceptors, getThemeV2Interceptor } from "../utils";
2+
import { SearchV2Helper } from "./helpers/searchV2Helper";
3+
4+
const SAMPLE_ENTITY_NAME = "SampleCypressKafkaDataset";
5+
const SAMPLE_ENTITY_URN =
6+
"urn:li:dataset:(urn:li:dataPlatform:kafka,SampleCypressKafkaDataset,PROD)";
7+
8+
describe("searchBarV2 - Entity Interaction", () => {
9+
const helper = new SearchV2Helper();
10+
11+
const setupTest = (searchBarApi = "SEARCH_ACROSS_ENTITIES") => {
12+
applyGraphqlInterceptors([
13+
getThemeV2Interceptor(true),
14+
helper.getSearchBarInterceptor(true, searchBarApi),
15+
]);
16+
17+
cy.login();
18+
cy.skipIntroducePage();
19+
};
20+
21+
it("should handle clicking on the entity from response", () => {
22+
setupTest();
23+
helper.goToHomePage();
24+
25+
helper.searchBarV2.type(SAMPLE_ENTITY_NAME);
26+
helper.searchBarV2.clickOnEntityResponseItem(SAMPLE_ENTITY_URN);
27+
helper.ensureIsOnEntityProfilePage(SAMPLE_ENTITY_URN);
28+
});
29+
30+
it("should handle clicking on view all", () => {
31+
setupTest();
32+
helper.goToHomePage();
33+
34+
helper.searchBarV2.type(SAMPLE_ENTITY_NAME);
35+
helper.searchBarV2.clickOnViewAllSection();
36+
37+
helper.ensureItIsSearchPage();
38+
helper.ensureUrlIncludesText(SAMPLE_ENTITY_NAME);
39+
});
40+
});
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import { applyGraphqlInterceptors, getThemeV2Interceptor } from "../utils";
2+
import { SearchV2Helper } from "./helpers/searchV2Helper";
3+
4+
const SAMPLE_ENTITY_NAME = "SampleCypressKafkaDataset";
5+
const SAMPLE_ENTITY_URN =
6+
"urn:li:dataset:(urn:li:dataPlatform:kafka,SampleCypressKafkaDataset,PROD)";
7+
8+
describe("searchBarV2 - Filter Application", () => {
9+
const helper = new SearchV2Helper();
10+
11+
const setupTest = (searchBarApi = "SEARCH_ACROSS_ENTITIES") => {
12+
applyGraphqlInterceptors([
13+
getThemeV2Interceptor(true),
14+
helper.getSearchBarInterceptor(true, searchBarApi),
15+
]);
16+
17+
cy.login();
18+
cy.skipIntroducePage();
19+
};
20+
21+
it("should apply filters correctly", () => {
22+
setupTest();
23+
helper.goToHomePage();
24+
25+
helper.searchBarV2.type(SAMPLE_ENTITY_NAME);
26+
27+
// Check platform filter
28+
helper.searchBarV2.filters.apply("platform", ["Kafka"]);
29+
helper.searchBarV2.filters.ensureValuesSelected("platform", ["Kafka"]);
30+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
31+
helper.searchBarV2.filters.clear("platform");
32+
helper.searchBarV2.filters.ensureValuesNotSelected("platform", ["Kafka"]);
33+
helper.searchBarV2.filters.apply("platform", ["Looker"]);
34+
helper.searchBarV2.filters.ensureValuesSelected("platform", ["Looker"]);
35+
helper.searchBarV2.ensureEntityNotInResponse(SAMPLE_ENTITY_URN);
36+
helper.searchBarV2.filters.clear("platform");
37+
helper.searchBarV2.filters.ensureValuesNotSelected("platform", ["Looker"]);
38+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
39+
40+
// Check entity type filter
41+
helper.searchBarV2.filters.apply("entity-type", ["Dataset"]);
42+
helper.searchBarV2.filters.ensureValuesSelected("entity-type", ["Dataset"]);
43+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
44+
helper.searchBarV2.filters.clear("entity-type");
45+
helper.searchBarV2.ensureEntityNotInResponse("entity-type", ["Dataset"]);
46+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
47+
48+
// Check owner filter
49+
helper.searchBarV2.filters.apply("owner", ["DataHub"]);
50+
helper.searchBarV2.filters.ensureValuesSelected("owner", ["DataHub"]);
51+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
52+
helper.searchBarV2.filters.clear("owner");
53+
helper.searchBarV2.ensureEntityNotInResponse("owner", ["DataHub"]);
54+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
55+
56+
// Check tag filter
57+
helper.searchBarV2.filters.apply("tag", ["Cypress"]);
58+
helper.searchBarV2.filters.ensureValuesSelected("tag", ["Cypress"]);
59+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
60+
helper.searchBarV2.filters.clear("tag");
61+
helper.searchBarV2.filters.ensureValuesNotSelected("tag", ["Cypress"]);
62+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
63+
helper.searchBarV2.filters.apply("tag", ["Cypress 2"]);
64+
helper.searchBarV2.filters.ensureValuesSelected("tag", ["Cypress 2"]);
65+
helper.searchBarV2.ensureEntityNotInResponse(SAMPLE_ENTITY_URN);
66+
helper.searchBarV2.filters.clear("tag");
67+
helper.searchBarV2.filters.ensureValuesNotSelected("tag", ["Cypress 2"]);
68+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
69+
70+
// Check domain filter
71+
helper.searchBarV2.filters.apply("domain", ["Marketing"]);
72+
helper.searchBarV2.filters.ensureValuesSelected("domain", ["Marketing"]);
73+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
74+
helper.searchBarV2.filters.clear("domain");
75+
helper.searchBarV2.filters.ensureValuesNotSelected("domain", ["Marketing"]);
76+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
77+
helper.searchBarV2.filters.apply("domain", ["Testing"]);
78+
helper.searchBarV2.filters.ensureValuesSelected("domain", ["Testing"]);
79+
helper.searchBarV2.ensureEntityNotInResponse(SAMPLE_ENTITY_URN);
80+
helper.searchBarV2.filters.clear("domain");
81+
helper.searchBarV2.filters.ensureValuesNotSelected("domain", ["Testing"]);
82+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
83+
});
84+
});
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { applyGraphqlInterceptors, getThemeV2Interceptor } from "../utils";
2+
import { SearchV2Helper } from "./helpers/searchV2Helper";
3+
4+
const SAMPLE_ENTITY_NAME = "SampleCypressKafkaDataset";
5+
const SAMPLE_ENTITY_URN =
6+
"urn:li:dataset:(urn:li:dataPlatform:kafka,SampleCypressKafkaDataset,PROD)";
7+
8+
describe("searchBarV2 - Filter Functionality", () => {
9+
const helper = new SearchV2Helper();
10+
11+
const setupTest = (searchBarApi = "SEARCH_ACROSS_ENTITIES") => {
12+
applyGraphqlInterceptors([
13+
getThemeV2Interceptor(true),
14+
helper.getSearchBarInterceptor(true, searchBarApi),
15+
]);
16+
17+
cy.login();
18+
cy.skipIntroducePage();
19+
};
20+
21+
it("should show no results state", () => {
22+
setupTest();
23+
helper.goToHomePage();
24+
25+
helper.searchBarV2.type(SAMPLE_ENTITY_NAME);
26+
helper.searchBarV2.filters.apply("platform", ["Looker"]);
27+
helper.searchBarV2.filters.ensureValuesSelected("platform", ["Looker"]);
28+
helper.searchBarV2.ensureInNoResultsFoundState();
29+
helper.searchBarV2.ensureNoResultsFoundStateHasClearButton();
30+
helper.searchBarV2.clearFiltersInNoResultsFoundState();
31+
// filters cleared only
32+
helper.searchBarV2.filters.ensureValuesNotSelected("platform", ["Looker"]);
33+
helper.searchBarV2.ensureTextInSearchBar(SAMPLE_ENTITY_NAME);
34+
35+
helper.searchBarV2.clear();
36+
helper.searchBarV2.type(`${SAMPLE_ENTITY_NAME}zzzzzzzzzzzzzzzz`);
37+
helper.searchBarV2.ensureInNoResultsFoundState();
38+
// without filters there are no clear button
39+
helper.searchBarV2.ensureNoResultsFoundStateHasNoClearButton();
40+
});
41+
});
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { applyGraphqlInterceptors, getThemeV2Interceptor } from "../utils";
2+
import { SearchV2Helper } from "./helpers/searchV2Helper";
3+
4+
const SAMPLE_ENTITY_NAME = "SampleCypressKafkaDataset";
5+
const SAMPLE_ENTITY_URN =
6+
"urn:li:dataset:(urn:li:dataPlatform:kafka,SampleCypressKafkaDataset,PROD)";
7+
8+
describe("searchBarV2 - Keyboard Interaction", () => {
9+
const helper = new SearchV2Helper();
10+
11+
const setupTest = (searchBarApi = "SEARCH_ACROSS_ENTITIES") => {
12+
applyGraphqlInterceptors([
13+
getThemeV2Interceptor(true),
14+
helper.getSearchBarInterceptor(true, searchBarApi),
15+
]);
16+
17+
cy.login();
18+
cy.skipIntroducePage();
19+
};
20+
21+
it("should handle keyboard", () => {
22+
setupTest();
23+
helper.goToHomePage();
24+
25+
// Opening by shortcut
26+
helper.searchBarV2.openByShortcut();
27+
helper.searchBarV2.ensureFocused();
28+
helper.searchBarV2.ensureOpened();
29+
30+
// Fill the search bar and apply filter
31+
helper.searchBarV2.type(SAMPLE_ENTITY_NAME);
32+
helper.searchBarV2.ensureTextInSearchBar(SAMPLE_ENTITY_NAME);
33+
helper.searchBarV2.ensureOpened();
34+
helper.searchBarV2.filters.apply("platform", ["Kafka"]);
35+
36+
// The first Esc just closes the search bars dropdown
37+
helper.searchBarV2.pressEscape();
38+
helper.searchBarV2.ensureTextInSearchBar(SAMPLE_ENTITY_NAME);
39+
helper.searchBarV2.ensureClosed();
40+
41+
// The second Esc cleans query and applied filters in the search bar
42+
helper.searchBarV2.pressEscape();
43+
helper.searchBarV2.ensureTextInSearchBar("");
44+
helper.searchBarV2.ensureClosed();
45+
46+
// check if platform filter is empty
47+
helper.searchBarV2.openByShortcut();
48+
helper.searchBarV2.type(SAMPLE_ENTITY_NAME);
49+
helper.searchBarV2.filters.ensureValuesNotSelected("platform", ["Kafka"]);
50+
});
51+
});
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { applyGraphqlInterceptors, getThemeV2Interceptor } from "../utils";
2+
import { SearchV2Helper } from "./helpers/searchV2Helper";
3+
4+
const SAMPLE_ENTITY_NAME = "SampleCypressKafkaDataset";
5+
const SAMPLE_ENTITY_URN =
6+
"urn:li:dataset:(urn:li:dataPlatform:kafka,SampleCypressKafkaDataset,PROD)";
7+
8+
describe("searchBarV2 - Matched Fields", () => {
9+
const helper = new SearchV2Helper();
10+
11+
const setupTest = (searchBarApi = "SEARCH_ACROSS_ENTITIES") => {
12+
applyGraphqlInterceptors([
13+
getThemeV2Interceptor(true),
14+
helper.getSearchBarInterceptor(true, searchBarApi),
15+
]);
16+
17+
cy.login();
18+
cy.skipIntroducePage();
19+
};
20+
21+
it("should show matched fields when possible", () => {
22+
setupTest("SEARCH_ACROSS_ENTITIES");
23+
helper.goToHomePage();
24+
25+
helper.searchBarV2.type("field_foo_2");
26+
helper.searchBarV2.filters.apply("platform", ["Kafka"]);
27+
helper.searchBarV2.filters.apply("tag", ["Cypress"]);
28+
helper.searchBarV2.ensureEntityInResponse(SAMPLE_ENTITY_URN);
29+
helper.searchBarV2.ensureMatchedFieldHasText(
30+
SAMPLE_ENTITY_URN,
31+
"fieldPaths",
32+
"field_foo_2",
33+
);
34+
});
35+
});

0 commit comments

Comments
 (0)