From 8b11ba9bd075709eb10431041b1bce17e048e9ea Mon Sep 17 00:00:00 2001 From: vlad-dargel Date: Mon, 18 Jul 2022 19:36:48 +0200 Subject: [PATCH] add freeze the entry id test --- tests/e2e/pageObjects/browser-page.ts | 7 ++++--- .../regression/browser/stream-key.e2e.ts | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/e2e/pageObjects/browser-page.ts b/tests/e2e/pageObjects/browser-page.ts index 79384eaec2..543237777e 100644 --- a/tests/e2e/pageObjects/browser-page.ts +++ b/tests/e2e/pageObjects/browser-page.ts @@ -207,6 +207,7 @@ export class BrowserPage { streamEntryDate = Selector('[data-testid*=-date][data-testid*=stream-entry]'); streamEntryIdValue = Selector('.streamItemId[data-testid*=stream-entry]'); streamFields = Selector('[data-testid=stream-entries-container] .truncateText'); + streamVirtualContainer = Selector('[data-testid=virtual-grid-container] div div').nth(0); streamEntryFields = Selector('[data-testid^=stream-entry-field]'); confirmationMessagePopover = Selector('div.euiPopover__panel .euiText '); streamRangeLeftTimestamp = Selector('[data-testid=range-left-timestamp]'); @@ -691,7 +692,7 @@ export class BrowserPage { * @param element Selector of the element with list */ async getValuesListByElement(element: any): Promise { - const keyValues = []; + const keyValues: string[] = []; const count = await element.count; for (let i = 0; i < count; i++) { keyValues[i] = await element.nth(i).textContent; @@ -719,10 +720,10 @@ export class BrowserPage { } // Verify that every level of tree view is clickable const foldersNumber = folders.length; - for(let i = 0; i < foldersNumber; i++) { + for (let i = 0; i < foldersNumber; i++) { const innerFoldersNumber = folders[i].length; const array: string[] = []; - for(let j = 0; j < innerFoldersNumber; j++) { + for (let j = 0; j < innerFoldersNumber; j++) { if (j === 0) { const folderSelector = `[data-testid="node-item_${folders[i][j]}${delimiter}"]`; array.push(folderSelector); diff --git a/tests/e2e/tests/regression/browser/stream-key.e2e.ts b/tests/e2e/tests/regression/browser/stream-key.e2e.ts index 27df14adb3..938ffcb0e9 100644 --- a/tests/e2e/tests/regression/browser/stream-key.e2e.ts +++ b/tests/e2e/tests/regression/browser/stream-key.e2e.ts @@ -3,10 +3,12 @@ import { acceptLicenseTermsAndAddDatabase, deleteDatabase } from '../../../helpe import { rte } from '../../../helpers/constants'; import { BrowserPage, CliPage } from '../../../pageObjects'; import { commonUrl, ossStandaloneConfig } from '../../../helpers/conf'; +import { Common } from '../../../helpers/common'; const browserPage = new BrowserPage(); const cliPage = new CliPage(); const chance = new Chance(); +const common = new Common(); const value = chance.word({length: 5}); let field = chance.word({length: 5}); @@ -122,3 +124,20 @@ test('Verify that user can see a confirmation message when request to delete an await t.expect(browserPage.confirmationMessagePopover.textContent).contains(confirmationMessage, `The confirmation message ${keyName}`); await t.expect(browserPage.confirmationMessagePopover.textContent).contains(entryId, 'The confirmation message for removing Entry'); }); +test('Verify that the Entry ID field, Delete button are always displayed while scrolling for Stream data', async t => { + keyName = chance.word({ length: 20 }); + const fields = common.createArrayWithKeys(9); + const values = common.createArrayWithKeys(9); + //Add new Stream key with 3 fields + for (let i = 0; i < fields.length; i++) { + await cliPage.sendCommandInCli(`XADD ${keyName} * ${fields[i]} ${values[i]}`); + } + //Open key details + await browserPage.openKeyDetails(keyName); + // Scroll right + await t.pressKey('shift').scroll(browserPage.streamVirtualContainer, 'right'); + // Verify that Entry ID field and Delete button are always displayed + await t.expect(browserPage.streamFieldsValues.withText(fields[5]).visible).ok(`The Stream field ${fields[5]} is not visible`) + .expect(browserPage.removeEntryButton.visible).ok('Delete icon is not visible') + .expect(browserPage.streamEntryDate.visible).ok('Entry ID column is not visible'); +});