From 12eb753bef8329d8d23bc7d8c29d8e504ab6fa87 Mon Sep 17 00:00:00 2001 From: nmammadli Date: Wed, 21 Dec 2022 07:23:21 +0100 Subject: [PATCH 1/2] Add 'flushdb', change from big standalone to standalone in order to prevent flakiness --- .../tree-view/tree-view-improvements.e2e.ts | 68 +++++++++++-------- 1 file changed, 41 insertions(+), 27 deletions(-) diff --git a/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts b/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts index fe3b036161..1afc20f00b 100644 --- a/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts +++ b/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts @@ -5,7 +5,6 @@ import { } from '../../../pageObjects'; import { commonUrl, - ossStandaloneBigConfig, ossStandaloneConfig } from '../../../helpers/conf'; import { KeyTypesTexts, rte } from '../../../helpers/constants'; @@ -19,27 +18,28 @@ const cliPage = new CliPage(); let keyNames: string[]; let keyName1: string; let keyName2: string; -let keynameSingle: string; +let keyNameSingle: string; let index: string; -fixture`Tree view navigations improvement tests` +fixture.only`Tree view navigations improvement tests` .meta({ type: 'critical_path', rte: rte.standalone }) .page(commonUrl); test - .before(async () => { + .before(async() => { await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig, ossStandaloneConfig.databaseName); }) - .after(async () => { + .after(async() => { await t.click(browserPage.patternModeBtn); await browserPage.deleteKeysByNames(keyNames); await deleteStandaloneDatabaseApi(ossStandaloneConfig); })('Tree view preselected folder', async t => { keyName1 = common.generateWord(10); // used to create index name keyName2 = common.generateWord(10); // used to create index name - keynameSingle = common.generateWord(10); - keyNames = [`${keyName1}:1`, `${keyName1}:2`, `${keyName2}:1`, `${keyName2}:2`, keynameSingle]; + keyNameSingle = common.generateWord(10); + keyNames = [`${keyName1}:1`, `${keyName1}:2`, `${keyName2}:1`, `${keyName2}:2`, keyNameSingle]; const commands = [ + 'flushdb', `HSET ${keyNames[0]} field value`, `HSET ${keyNames[1]} field value`, `HSET ${keyNames[2]} field value`, @@ -51,16 +51,16 @@ test await cliPage.sendCommandsInCli(commands); await t.click(browserPage.treeViewButton); // The folder without any patterns selected and the list of keys is displayed when there is a folder without any patterns - await verifyKeysDisplayedInTheList([keynameSingle]); + await verifyKeysDisplayedInTheList([keyNameSingle]); await browserPage.openTreeFolders([await browserPage.getTextFromNthTreeElement(1)]); await browserPage.selectFilterGroupType(KeyTypesTexts.Set); // The folder without any namespaces is selected (if exists) when folder does not exist after search/filter - await verifyKeysDisplayedInTheList([keynameSingle]); + await verifyKeysDisplayedInTheList([keyNameSingle]); await t.click(browserPage.setDeleteButton); // The folder without any patterns selected and the list of keys is displayed when there is a folder without any patterns - await verifyKeysDisplayedInTheList([keynameSingle]); + await verifyKeysDisplayedInTheList([keyNameSingle]); await verifyKeysNotDisplayedInTheList([`${keyNames[0]}:1`, `${keyNames[2]}:2`]); // switch between browser view and tree view @@ -82,32 +82,32 @@ test await cliPage.sendCommandsInCli(commands1); await t.click(browserPage.refreshKeysButton); - // Refreshed Tree view preselected folder + // Refreshed Tree view preselected folder await t.expect(firstTreeItemKeys.visible) .ok('Folder is not selected'); await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); await browserPage.selectFilterGroupType(KeyTypesTexts.Hash); await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected after searching with HASH'); - // Filterred Tree view preselected folder + // Filtered Tree view preselected folder await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); await browserPage.searchByKeyName('*'); - // Search capability Filterred Tree view preselected folder + // Search capability Filtered Tree view preselected folder await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected'); await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); await t.click(browserPage.clearFilterButton); - // Filterred Tree view preselected folder + // Filtered Tree view preselected folder await t.expect(firstTreeItemKeys.visible).ok('Folder is not selected'); await verifyKeysDisplayedInTheList([`${firstTreeItemText}:1`, `${firstTreeItemText}:2`]); await browserPage.selectFilterGroupType(KeyTypesTexts.Stream); - // Filterred Tree view preselected folder + // Filtered Tree view preselected folder await t.expect(browserPage.keyListTable.textContent).contains('No results found.', 'Key is not found message not displayed'); await t.click(browserPage.streamDeleteButton); // clear stream from filter - // Filterred Tree view preselected folder + // Filtered Tree view preselected folder await t.expect(browserPage.keyListTable.textContent).notContains('No results found.', 'Key is not found message still displayed'); await t.expect( firstTreeItemKeys.visible) @@ -115,15 +115,28 @@ test }); test - .before(async () => { - await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneBigConfig, ossStandaloneBigConfig.databaseName); + .before(async() => { + await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig, ossStandaloneConfig.databaseName); }) - .after(async () => { + .after(async() => { await cliPage.sendCommandInCli(`FT.DROPINDEX ${index}`); - await deleteStandaloneDatabaseApi(ossStandaloneBigConfig); + await deleteStandaloneDatabaseApi(ossStandaloneConfig); })('Verify tree view navigation for index based search', async t => { + keyName1 = common.generateWord(10); // used to create index name + keyName2 = common.generateWord(10); // used to create index name + const subFolder1 = common.generateWord(10); // used to create index name + keyNames = [`${keyName1}:${subFolder1}:1`, `${keyName1}:${subFolder1}:2`, `${keyName2}:1:1`, `${keyName2}:1:2`]; + const commands = [ + 'flushdb', + `HSET ${keyNames[0]} field value`, + `HSET ${keyNames[1]} field value`, + `HSET ${keyNames[2]} field value`, + `HSET ${keyNames[3]} field value` + ]; + await cliPage.sendCommandsInCli(commands); + // generate index based on keyName - const folders = ['mobile', '2014']; + const folders = [keyName1, subFolder1]; index = await cliPage.createIndexwithCLI(folders.join(':')); await t.click(browserPage.redisearchModeBtn); // click redisearch button await browserPage.selectIndexByName(index); @@ -138,19 +151,20 @@ test }); test - .before(async () => { + .before(async() => { await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig, ossStandaloneConfig.databaseName); }) - .after(async () => { + .after(async() => { await t.click(browserPage.patternModeBtn); await browserPage.deleteKeysByNames(keyNames.slice(1)); await deleteStandaloneDatabaseApi(ossStandaloneConfig); })('Search capability Refreshed Tree view preselected folder', async t => { keyName1 = common.generateWord(10); // used to create index name keyName2 = common.generateWord(10); // used to create index name - keynameSingle = common.generateWord(10); - keyNames = [`${keyName1}:1`, `${keyName1}:2`, `${keyName2}:1`, `${keyName2}:2`, keynameSingle]; + keyNameSingle = common.generateWord(10); + keyNames = [`${keyName1}:1`, `${keyName1}:2`, `${keyName2}:1`, `${keyName2}:2`, keyNameSingle]; const commands = [ + 'flushdb', `HSET ${keyNames[0]} field value`, `HSET ${keyNames[1]} field value`, `RPUSH ${keyNames[2]} field`, @@ -160,7 +174,7 @@ test await cliPage.sendCommandsInCli(commands); await t.click(browserPage.treeViewButton); // The folder without any patterns selected and the list of keys is displayed when there is a folder without any patterns - await verifyKeysDisplayedInTheList([keynameSingle]); + await verifyKeysDisplayedInTheList([keyNameSingle]); await browserPage.openTreeFolders([keyName1]); // Type: hash await browserPage.openTreeFolders([keyName2]); // Type: list @@ -171,7 +185,7 @@ test await t.click(browserPage.hashDeleteButton); await cliPage.sendCommandsInCli([`DEL ${keyNames[0]}`]); await t.click(browserPage.refreshKeysButton); // refresh keys - // The previously selected folder is preselected when key does not exist after keys refresh + // The previously selected folder is preselected when key does not exist after keys refresh await verifyKeysDisplayedInTheList([keyNames[1]]); await verifyKeysNotDisplayedInTheList([keyNames[0], keyNames[2], keyNames[3], keyNames[4]]); From b88f0bbeb9e86a41871344a8a483ea0b728484dd Mon Sep 17 00:00:00 2001 From: nmammadli Date: Wed, 21 Dec 2022 07:53:35 +0100 Subject: [PATCH 2/2] delete .only --- .../tests/critical-path/tree-view/tree-view-improvements.e2e.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts b/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts index 1afc20f00b..63b2415041 100644 --- a/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts +++ b/tests/e2e/tests/critical-path/tree-view/tree-view-improvements.e2e.ts @@ -21,7 +21,7 @@ let keyName2: string; let keyNameSingle: string; let index: string; -fixture.only`Tree view navigations improvement tests` +fixture`Tree view navigations improvement tests` .meta({ type: 'critical_path', rte: rte.standalone }) .page(commonUrl); test