Skip to content

Commit 4702ba5

Browse files
committed
Clear code
1 parent c483807 commit 4702ba5

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
import { Selector, t } from 'testcafe';
2+
import { acceptLicenseTermsAndAddDatabaseApi } from '../../../helpers/database';
3+
import {
4+
BrowserPage, CliPage
5+
} from '../../../pageObjects';
6+
import {
7+
commonUrl,
8+
ossStandaloneBigConfig,
9+
ossStandaloneConfig
10+
} from '../../../helpers/conf';
11+
import { KeyTypesTexts, rte } from '../../../helpers/constants';
12+
import { deleteStandaloneDatabaseApi } from '../../../helpers/api/api-database';
13+
import { Common } from '../../../helpers/common';
14+
import { verifyKeysDisplayedInTheList, verifyKeysNotDisplayedInTheList } from '../../../helpers/keys';
15+
16+
const browserPage = new BrowserPage();
17+
const common = new Common();
18+
const cliPage = new CliPage();
19+
let keyNames: string[];
20+
let keyName1: string;
21+
let keyName2: string;
22+
let keynameSingle: string;
23+
let index: string;
24+
25+
fixture`Tree view navigations improvement tests`
26+
.meta({ type: 'critical_path', rte: rte.standalone })
27+
.page(commonUrl);
28+
test
29+
.only
30+
.before(async () => {
31+
await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig, ossStandaloneConfig.databaseName);
32+
})
33+
.after(async () => {
34+
await t.click(browserPage.patternModeBtn);
35+
await browserPage.deleteKeysByNames(keyNames);
36+
await deleteStandaloneDatabaseApi(ossStandaloneConfig);
37+
})('Tree view preselected folder', async t => {
38+
39+
keyName1 = common.generateWord(10); // used to create index name
40+
keyName2 = common.generateWord(10); // used to create index name
41+
keynameSingle = common.generateWord(10);
42+
keyNames = [`${keyName1}:1`, `${keyName1}:2`, `${keyName2}:1`, `${keyName2}:2`, keynameSingle];
43+
44+
const commands = [
45+
`HSET ${keyNames[0]} field value`,
46+
`HSET ${keyNames[1]} field value`,
47+
`HSET ${keyNames[2]} field value`,
48+
`HSET ${keyNames[3]} field value`,
49+
`HSET ${keyNames[4]} field value`
50+
];
51+
52+
// Create 5 keys
53+
await cliPage.sendCommandsInCli(commands);
54+
await t.click(browserPage.treeViewButton);
55+
// verify that first element in the tree is "keys" and other folders are closed
56+
await verifyKeysDisplayedInTheList([keynameSingle]);
57+
await verifyKeysNotDisplayedInTheList([`${keyNames[0]}:1`, `${keyNames[2]}:2`]);
58+
// switch between browser view and tree view
59+
await t.click(browserPage.browserViewButton);
60+
await t.click(browserPage.treeViewButton);
61+
// Switch to tree view
62+
await browserPage.deleteKeyByName(keyNames[4]);
63+
await t.click(browserPage.clearFilterButton);
64+
// get first folder name
65+
const firstTreeItemText = await browserPage.getTextFromFirstTreeElement();
66+
const firstTreeItemKeys = Selector(`[data-testid="node-item_${firstTreeItemText}:keys:keys:"]`); // keys after node item opened
67+
// verify that the first folder with namespaces is expanded and selected
68+
await t.expect(firstTreeItemKeys.visible)
69+
.ok('First folder is not expanded');
70+
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
71+
72+
const commands1 = [
73+
`HSET ${keyNames[4]} field value`
74+
];
75+
76+
// Create 4 keys and index
77+
await cliPage.sendCommandsInCli(commands1);
78+
await t.click(browserPage.refreshKeysButton); // refresh keys
79+
80+
await t.expect(firstTreeItemKeys.visible)
81+
.ok('Folder is not selected');
82+
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
83+
84+
await browserPage.selectFilterGroupType(KeyTypesTexts.Hash);
85+
86+
await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected after searching with HASH');
87+
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
88+
89+
await browserPage.searchByKeyName('*');
90+
91+
await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected');
92+
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
93+
94+
await t.click(browserPage.clearFilterButton);
95+
96+
await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected');
97+
await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); // verify created keys are visible
98+
99+
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
104+
105+
await t.click(browserPage.streamDeleteButton); // clear stream from filter
106+
107+
await t.expect(
108+
Selector('[role="rowgroup"]').find('div').withText('No results found.').visible)
109+
.notOk('No result text is still visible');
110+
await t.expect(
111+
firstTreeItemKeys.visible).
112+
notOk('First folder is expanded');
113+
114+
});
115+
116+
test
117+
.before(async () => {
118+
await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneBigConfig, ossStandaloneBigConfig.databaseName);
119+
})
120+
.after(async () => {
121+
await cliPage.sendCommandInCli(`FT.DROPINDEX ${index}`);
122+
await deleteStandaloneDatabaseApi(ossStandaloneBigConfig);
123+
})('Verify tree view navigation for index based search', async t => {
124+
// generate index based on keyName
125+
const folders = ['mobile', '2'];
126+
127+
index = await cliPage.createRandomIndexNamewithCLI();
128+
129+
await t.click(browserPage.redisearchModeBtn); // click redisearch button
130+
await browserPage.selectIndexByName(index);
131+
132+
await t.click(browserPage.treeViewButton);
133+
await browserPage.openTreeFolders(folders);
134+
await t.click(browserPage.refreshKeysButton);
135+
136+
await t.expect(
137+
Selector(`[data-testid="node-item_${folders[0]}:${folders[1]}:keys:keys:"]`).visible)
138+
.ok('Folder is not selected');
139+
140+
});

0 commit comments

Comments
 (0)