Skip to content

Commit 92edb6f

Browse files
Merge pull request #2166 from RedisInsight/e2e/feature/RI-4106_rework-search
E2e/feature/ri 4106 rework search
2 parents c501b74 + d27c4ee commit 92edb6f

File tree

6 files changed

+22
-28
lines changed

6 files changed

+22
-28
lines changed

tests/e2e/pageObjects/browser-page.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ export class BrowserPage extends InstancePage {
7272
treeViewButton = Selector('[data-testid=view-type-list-btn]');
7373
browserViewButton = Selector('[data-testid=view-type-browser-btn]');
7474
treeViewSeparator = Selector('[data-testid=tree-view-delimiter-btn]');
75-
deleteFilterButton = Selector('[data-testid*=delete-btn]');
7675
searchButton = Selector('[data-testid=search-btn]');
7776
clearFilterButton = Selector('[data-testid=reset-filter-btn]');
7877
clearSelectionButton = Selector('[data-testid=clear-selection-btn]');
@@ -118,7 +117,7 @@ export class BrowserPage extends InstancePage {
118117
//LINKS
119118
internalLinkToWorkbench = Selector('[data-testid=internal-workbench-link]');
120119
userSurveyLink = Selector('[data-testid=user-survey-link]');
121-
redisearchFreeLink = Selector('[data-testid=redisearch-free-db]');
120+
redisearchFreeLink = Selector('[data-testid=get-started-link]');
122121
//OPTION ELEMENTS
123122
stringOption = Selector('#string');
124123
jsonOption = Selector('#ReJSON-RL');
@@ -130,7 +129,8 @@ export class BrowserPage extends InstancePage {
130129
removeFromHeadSelection = Selector('#HEAD');
131130
selectedFilterTypeString = Selector('[data-testid=filter-option-type-selected-string]');
132131
filterOptionType = Selector('[data-test-subj^=filter-option-type-]');
133-
filterByKeyTypeDropDown = Selector('[data-testid=filter-option-type-default]', { timeout: 500 });
132+
filterByKeyTypeDropDown = Selector('[data-testid=select-filter-key-type]', { timeout: 500 });
133+
filterAllKeyType = Selector('[id=all]');
134134
filterOptionTypeSelected = Selector('[data-testid^=filter-option-type-selected]');
135135
consumerOption = Selector('[data-testid=consumer-option]');
136136
claimTimeOptionSelect = Selector('[data-testid=time-option-select]');
@@ -209,7 +209,6 @@ export class BrowserPage extends InstancePage {
209209
jsonKeyValue = Selector('[data-testid=json-data]');
210210
jsonError = Selector('[data-testid=edit-json-error]');
211211
tooltip = Selector('[role=tooltip]');
212-
popover = Selector('[role=dialog]');
213212
noResultsFound = Selector('[data-test-subj=no-result-found]');
214213
searchAdvices = Selector('[data-test-subj=search-advices]');
215214
keysNumberOfResults = Selector('[data-testid=keys-number-of-results]');
@@ -274,6 +273,8 @@ export class BrowserPage extends InstancePage {
274273
changeValueWarning = Selector('[data-testid=approve-popover]');
275274
// TABLE
276275
keyListItem = Selector('[role=rowgroup] [role=row]');
276+
// Dialog
277+
noReadySearchDialogTitle = Selector('[data-testid=welcome-page-title]');
277278

278279
/**
279280
* Common part for Add any new key
@@ -487,14 +488,20 @@ export class BrowserPage extends InstancePage {
487488
* @param groupName The group name
488489
*/
489490
async selectFilterGroupType(groupName: string): Promise<void> {
490-
if (await this.deleteFilterButton.exists) {
491-
await t.click(this.deleteFilterButton);
492-
}
493491
await t
494492
.click(this.filterByKeyTypeDropDown)
495493
.click((this.filterOptionType).withExactText(groupName));
496494
}
497495

496+
/**
497+
* Select all key type filter group type
498+
*/
499+
async setAllKeyType(): Promise<void> {
500+
await t
501+
.click(this.filterByKeyTypeDropDown)
502+
.click(this.filterAllKeyType);
503+
}
504+
498505
/**
499506
* Searching by Key name in the list
500507
* @param keyName The name of the key

tests/e2e/tests/critical-path/browser/filtering-history.e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ test('Recent filters history', async t => {
5252
await t.expect(browserPage.filterHistoryItemText.withText(keysForSearch[0]).exists).ok('Filter history requests not saved after reloading page');
5353

5454
// Open Tree view to check also there
55+
await t.click(browserPage.showFilterHistoryBtn);
5556
await t.click(browserPage.treeViewButton);
5657
// Search by 2nd key name
5758
await browserPage.searchByKeyName(`${keysForSearch[1]}*`);
@@ -60,7 +61,6 @@ test('Recent filters history', async t => {
6061
await t.hover(browserPage.filterHistoryItemText.withText(keysForSearch[1]));
6162
await t.click(browserPage.filterHistoryOption.withText(keysForSearch[1]).find(browserPage.cssRemoveSuggestionItem));
6263
await t.expect(browserPage.filterHistoryItemText.withText(keysForSearch[1]).exists).notOk('Filter history request not deleted');
63-
6464
// Verify that user can clear the history of requests
6565
await t.click(browserPage.clearFilterHistoryBtn);
6666
await t.expect(browserPage.showFilterHistoryBtn.exists).notOk('Filter history button displayed for key type search');

tests/e2e/tests/critical-path/browser/filtering.e2e.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ test
8181
for (const { textType } of keyTypes) {
8282
await browserPage.selectFilterGroupType(textType);
8383
// Check key type label
84-
await t.expect((await browserPage.filteringLabel.textContent).toUpperCase).eql(textType.toUpperCase, `The label of type ${textType} is displayed`);
84+
await t.expect((await browserPage.filterByKeyTypeDropDown.innerText).toUpperCase).eql(textType.toUpperCase, `The label of type ${textType} is displayed`);
8585
if (['Stream', 'Graph', 'TS'].includes(textType)) {
8686
await t.expect(browserPage.keysNumberOfResults.textContent).eql('0', 'Number of found keys');
8787
}
@@ -90,8 +90,4 @@ test
9090
await t.expect(browserPage.keysNumberOfResults.textContent).match(regExp, 'Number of found keys');
9191
}
9292
}
93-
// Check removing of the label
94-
await t.click(browserPage.deleteFilterButton);
95-
await t.expect(browserPage.multiSearchArea.find(browserPage.cssFilteringLabel).exists).notOk('The label of filtering type is removed');
96-
await t.expect(browserPage.keysSummary.textContent).contains('Total', 'The filter is removed');
9793
});

tests/e2e/tests/critical-path/browser/search-capabilities.e2e.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,12 @@ test
148148
.after(async() => {
149149
await deleteStandaloneDatabaseApi(ossStandaloneV5Config);
150150
})('No RediSearch module message', async t => {
151-
const noRedisearchMessage = 'RediSearch module is not loaded. Create a free Redis database(opens in a new tab or window) with module support on Redis Cloud.';
151+
const noRedisearchMessage = 'Looks like RediSearch is not available for this database';
152152
const externalPageLink = 'https://redis.com/try-free/?utm_source=redis&utm_medium=app&utm_campaign=redisinsight_browser_search';
153153

154154
await t.click(browserPage.redisearchModeBtn);
155-
// Verify that user can see message in popover when he not have RediSearch module
156-
await t.expect(browserPage.popover.textContent).contains(noRedisearchMessage, 'Invalid text in no redisearch popover');
155+
// Verify that user can see message in the dialog when he doesn't have RediSearch module
156+
await t.expect(browserPage.noReadySearchDialogTitle.textContent).contains(noRedisearchMessage, 'Invalid text in no redisearch popover');
157157
// Verify that user can navigate by link to create a Redis db
158158
await t.click(browserPage.redisearchFreeLink);
159159
await Common.checkURL(externalPageLink);

tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ test
5656
// The folder without any namespaces is selected (if exists) when folder does not exist after search/filter
5757
await verifyKeysDisplayedInTheList([keyNameSingle]);
5858

59-
await t.click(browserPage.setDeleteButton);
59+
await browserPage.setAllKeyType();
6060
// The folder without any patterns selected and the list of keys is displayed when there is a folder without any patterns
6161
await verifyKeysDisplayedInTheList([keyNameSingle]);
6262
await verifyKeysNotDisplayedInTheList([`${keyNames[0]}:1`, `${keyNames[2]}:2`]);
@@ -104,7 +104,7 @@ test
104104
// Filtered Tree view preselected folder
105105
await t.expect(browserPage.keyListTable.textContent).contains('No results found.', 'Key is not found message not displayed');
106106

107-
await t.click(browserPage.streamDeleteButton); // clear stream from filter
107+
await browserPage.setAllKeyType(); // clear stream from filter
108108
// Filtered Tree view preselected folder
109109
await t.expect(browserPage.keyListTable.textContent).notContains('No results found.', 'Key is not found message still displayed');
110110
await t.expect(
@@ -180,7 +180,7 @@ test
180180
// The first folder with namespaces is expanded and selected when folder and folder without any namespaces does not exist after search/filter
181181
await verifyKeysDisplayedInTheList([keyNames[0], keyNames[1]]);
182182

183-
await t.click(browserPage.hashDeleteButton);
183+
await browserPage.setAllKeyType();
184184
await browserPage.Cli.sendCommandsInCli([`DEL ${keyNames[0]}`]);
185185
await t.click(browserPage.refreshKeysButton); // refresh keys
186186
// The previously selected folder is preselected when key does not exist after keys refresh

tests/e2e/tests/regression/browser/filtering.e2e.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,6 @@ test
121121
await t.expect(browserPage.multiSearchArea.find(browserPage.cssFilteringLabel).visible).notOk('The filter per key type is not removed');
122122
await t.expect(browserPage.filterByPatterSearchInput.getAttribute('value')).eql('', 'All characters from filter input are not removed');
123123
await t.expect(browserPage.clearFilterButton.visible).notOk('The clear control is not disappeared');
124-
125-
// Set filter by key type and type characters
126-
await t.typeText(browserPage.filterByPatterSearchInput, keyName);
127-
await browserPage.selectFilterGroupType(COMMAND_GROUP_SET);
128-
// Verify that when user clicks "Clear selection button" in Dropdown with key data types selected data type is reseted
129-
await t.click(browserPage.filterOptionTypeSelected.nth(1));
130-
await t.click(browserPage.clearSelectionButton);
131-
await t.expect(browserPage.multiSearchArea.find(browserPage.cssFilteringLabel).visible).notOk('The filter per key type is not removed');
132-
await t.expect(browserPage.filterByPatterSearchInput.getAttribute('value')).eql(keyName, 'All characters from filter input are not removed');
133124
});
134125
test
135126
.before(async() => {

0 commit comments

Comments
 (0)