Skip to content

Commit 38b0512

Browse files
committed
Impelementation of last comments from review
1 parent 2bcba0e commit 38b0512

File tree

3 files changed

+64
-41
lines changed

3 files changed

+64
-41
lines changed

tests/e2e/pageObjects/browser-page.ts

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ export class BrowserPage {
2222
//*The following categories are ordered alphabetically (Alerts, Buttons, Checkboxes, etc.).
2323
//-------------------------------------------------------------------------------------------
2424
//BUTTONS
25-
streamDeleteButton = Selector(`[data-testid="stream-delete-btn"]`);
25+
hashDeleteButton = Selector('[data-testid=hash-delete-btn]');
26+
setDeleteButton = Selector('[data-testid=set-delete-btn]');
27+
streamDeleteButton = Selector('[data-testid=stream-delete-btn]');
2628
myRedisDbIcon = Selector('[data-testid=my-redis-db-icon]');
2729
deleteKeyButton = Selector('[data-testid=delete-key-btn]');
2830
confirmDeleteKeyButton = Selector('[data-testid=delete-key-confirm-btn]');
@@ -988,7 +990,7 @@ export class BrowserPage {
988990

989991
/**
990992
* Verify that keys can be scanned more and results increased
991-
*/
993+
*/
992994
async verifyScannningMore(): Promise<void> {
993995
for (let i = 10; i < 100; i += 10) {
994996
// Remember results value
@@ -1007,7 +1009,7 @@ export class BrowserPage {
10071009
/**
10081010
* Open Select Index droprown and select option
10091011
* @param index The name of format
1010-
*/
1012+
*/
10111013
async selectIndexByName(index: string): Promise<void> {
10121014
const option = Selector(`[data-test-subj="mode-option-type-${index}"]`);
10131015
await t
@@ -1016,20 +1018,16 @@ export class BrowserPage {
10161018
}
10171019

10181020
/**
1019-
*Get text from first tree element
1021+
* Get text from first tree element
10201022
*/
1021-
1022-
async getTextFromFirstTreeElement(): Promise<String> {
1023-
return (await Selector(`[role="treeitem"]`).nth(0).find(`div`).textContent).replace(/\s/g, '');
1023+
async getTextFromNthTreeElement(number: number): Promise<string> {
1024+
return (await Selector(`[role="treeitem"]`).nth(number).find(`div`).textContent).replace(/\s/g, '');
10241025
}
10251026

10261027
/**
1027-
* Get text from first tree element
1028+
* Open tree folder with multiple level
10281029
* @param names folder names with sequence of subfolder
1029-
* Example: if names ['mobile', '2']
1030-
* It will go to mobile -> 2 -> keys
10311030
*/
1032-
10331031
async openTreeFolders(names: string[]): Promise<void> {
10341032
let base = `node-item_${names[0]}:`
10351033
await t.click(Selector(`[data-testid="${base}"]`));
@@ -1045,8 +1043,6 @@ export class BrowserPage {
10451043
Selector(`[data-testid="${base}keys:keys:"]`).visible)
10461044
.ok("Folder is not selected");
10471045
}
1048-
1049-
10501046
}
10511047

10521048
/**

tests/e2e/pageObjects/cli-page.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,14 +176,13 @@ export class CliPage {
176176
* Create random index name with CLI and return
177177
*/
178178

179-
async createRandomIndexNamewithCLI(): Promise<string> {
179+
async createIndexwithCLI(prefix: string): Promise<string> {
180180
const word = common.generateWord(10);
181181
const index = `idx:${word}`;
182182
const commands = [
183-
`FT.CREATE ${index} ON HASH SCHEMA "name" TEXT`,
183+
`FT.CREATE ${index} ON HASH PREFIX 1 ${prefix} SCHEMA "name" TEXT`,
184184
];
185185
await this.sendCommandsInCli(commands);
186-
187186
return index;
188187
}
189188
}

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

Lines changed: 53 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ fixture`Tree view navigations improvement tests`
2626
.meta({ type: 'critical_path', rte: rte.standalone })
2727
.page(commonUrl);
2828
test
29-
.only
3029
.before(async () => {
3130
await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig, ossStandaloneConfig.databaseName);
3231
})
@@ -35,7 +34,6 @@ test
3534
await browserPage.deleteKeysByNames(keyNames);
3635
await deleteStandaloneDatabaseApi(ossStandaloneConfig);
3736
})('Tree view preselected folder', async t => {
38-
3937
keyName1 = common.generateWord(10); // used to create index name
4038
keyName2 = common.generateWord(10); // used to create index name
4139
keynameSingle = common.generateWord(10);
@@ -46,23 +44,31 @@ test
4644
`HSET ${keyNames[1]} field value`,
4745
`HSET ${keyNames[2]} field value`,
4846
`HSET ${keyNames[3]} field value`,
49-
`HSET ${keyNames[4]} field value`
47+
`SADD ${keyNames[4]} value`
5048
];
5149

5250
// Create 5 keys
5351
await cliPage.sendCommandsInCli(commands);
5452
await t.click(browserPage.treeViewButton);
53+
await verifyKeysDisplayedInTheList([keynameSingle]);
54+
55+
await browserPage.openTreeFolders([await browserPage.getTextFromNthTreeElement(1)]);
56+
await browserPage.selectFilterGroupType(KeyTypesTexts.Set);
57+
await verifyKeysDisplayedInTheList([keynameSingle]);
58+
59+
await t.click(browserPage.setDeleteButton);
5560
// verify that first element in the tree is "keys" and other folders are closed
5661
await verifyKeysDisplayedInTheList([keynameSingle]);
5762
await verifyKeysNotDisplayedInTheList([`${keyNames[0]}:1`, `${keyNames[2]}:2`]);
63+
5864
// switch between browser view and tree view
59-
await t.click(browserPage.browserViewButton);
60-
await t.click(browserPage.treeViewButton);
65+
await t.click(browserPage.browserViewButton)
66+
.click(browserPage.treeViewButton);
6167
// Switch to tree view
6268
await browserPage.deleteKeyByName(keyNames[4]);
6369
await t.click(browserPage.clearFilterButton);
6470
// get first folder name
65-
const firstTreeItemText = await browserPage.getTextFromFirstTreeElement();
71+
const firstTreeItemText = await browserPage.getTextFromNthTreeElement(0);
6672
const firstTreeItemKeys = Selector(`[data-testid="node-item_${firstTreeItemText}:keys:keys:"]`); // keys after node item opened
6773
// verify that the first folder with namespaces is expanded and selected
6874
await t.expect(firstTreeItemKeys.visible)
@@ -72,45 +78,35 @@ test
7278
const commands1 = [
7379
`HSET ${keyNames[4]} field value`
7480
];
75-
7681
// Create 4 keys and index
7782
await cliPage.sendCommandsInCli(commands1);
7883
await t.click(browserPage.refreshKeysButton); // refresh keys
79-
8084
await t.expect(firstTreeItemKeys.visible)
8185
.ok('Folder is not selected');
8286
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
8387

8488
await browserPage.selectFilterGroupType(KeyTypesTexts.Hash);
85-
8689
await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected after searching with HASH');
8790
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
8891

8992
await browserPage.searchByKeyName('*');
90-
9193
await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected');
9294
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
9395

9496
await t.click(browserPage.clearFilterButton);
95-
9697
await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected');
9798
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
9899

99100
await browserPage.selectFilterGroupType(KeyTypesTexts.Stream);
100-
101-
await t.expect(
102-
Selector('[role="rowgroup"]').find('div').withText('No results found.').visible)
103-
.ok('No results text is visible'); // verify no results found
101+
await t.expect(browserPage.keyListTable.textContent).contains('No results found.', 'Key is not found message not displayed');
104102

105103
await t.click(browserPage.streamDeleteButton); // clear stream from filter
106-
107104
await t.expect(
108105
Selector('[role="rowgroup"]').find('div').withText('No results found.').visible)
109106
.notOk('No result text is still visible');
110107
await t.expect(
111-
firstTreeItemKeys.visible).
112-
notOk('First folder is expanded');
113-
108+
firstTreeItemKeys.visible)
109+
.notOk('First folder is expanded');
114110
});
115111

116112
test
@@ -122,19 +118,51 @@ test
122118
await deleteStandaloneDatabaseApi(ossStandaloneBigConfig);
123119
})('Verify tree view navigation for index based search', async t => {
124120
// generate index based on keyName
125-
const folders = ['mobile', '2'];
126-
127-
index = await cliPage.createRandomIndexNamewithCLI();
128-
121+
const folders = ['mobile', '2014'];
122+
index = await cliPage.createIndexwithCLI(folders.join(':'));
129123
await t.click(browserPage.redisearchModeBtn); // click redisearch button
130124
await browserPage.selectIndexByName(index);
131-
132125
await t.click(browserPage.treeViewButton);
126+
await t.click(Selector(`[data-testid="${`node-item_${folders[0]}:`}"]`)); // close folder
133127
await browserPage.openTreeFolders(folders);
134128
await t.click(browserPage.refreshKeysButton);
135-
136129
await t.expect(
137130
Selector(`[data-testid="node-item_${folders[0]}:${folders[1]}:keys:keys:"]`).visible)
138131
.ok('Folder is not selected');
132+
});
139133

134+
test
135+
.before(async () => {
136+
await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig, ossStandaloneConfig.databaseName);
137+
})
138+
.after(async () => {
139+
await t.click(browserPage.patternModeBtn);
140+
await browserPage.deleteKeysByNames(keyNames.slice(1));
141+
await deleteStandaloneDatabaseApi(ossStandaloneConfig);
142+
})('', async t => {
143+
keyName1 = common.generateWord(10); // used to create index name
144+
keyName2 = common.generateWord(10); // used to create index name
145+
keynameSingle = common.generateWord(10);
146+
keyNames = [`${keyName1}:1`, `${keyName1}:2`, `${keyName2}:1`, `${keyName2}:2`, keynameSingle];
147+
const commands = [
148+
`HSET ${keyNames[0]} field value`,
149+
`HSET ${keyNames[1]} field value`,
150+
`RPUSH ${keyNames[2]} field`,
151+
`RPUSH ${keyNames[3]} field`,
152+
`SADD ${keyNames[4]} value`
153+
];
154+
await cliPage.sendCommandsInCli(commands);
155+
await t.click(browserPage.treeViewButton);
156+
await verifyKeysDisplayedInTheList([keynameSingle]);
157+
158+
await browserPage.openTreeFolders([keyName1]); // Type: hash
159+
await browserPage.openTreeFolders([keyName2]); // Type: list
160+
await browserPage.selectFilterGroupType(KeyTypesTexts.Hash);
161+
await verifyKeysDisplayedInTheList([keyNames[0], keyNames[1]]);
162+
163+
await t.click(browserPage.hashDeleteButton);
164+
await cliPage.sendCommandsInCli([`DEL ${keyNames[0]}`]);
165+
await t.click(browserPage.refreshKeysButton); // refresh keys
166+
await verifyKeysDisplayedInTheList([keyNames[1]]);
167+
await verifyKeysNotDisplayedInTheList([keyNames[0], keyNames[2], keyNames[3], keyNames[4]]);
140168
});

0 commit comments

Comments
 (0)