Skip to content

Commit 7f1eb62

Browse files
authored
Merge pull request #1373 from RedisInsight/e2e/feature/names-of-part-of-keys-are-invisible-test
E2e/feature/names of part of keys are invisible test
2 parents f961ad5 + 84f1781 commit 7f1eb62

File tree

5 files changed

+83
-4
lines changed

5 files changed

+83
-4
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { t } from 'testcafe';
2+
import { BrowserPage } from '../pageObjects';
3+
4+
const browserPage = new BrowserPage();
5+
6+
export class BrowserActions {
7+
/**
8+
* Check that all rendered keys on page has info displayed
9+
*/
10+
async verifyAllRenderedKeysHasText(): Promise<void> {
11+
const keyListItems = browserPage.virtualTableContainer.find(browserPage.cssVirtualTableRow);
12+
// Take 1st, middle and last one rendered items for test
13+
const keysForTest = [keyListItems.nth(0), keyListItems.nth(Math.round(await keyListItems.count / 2)), keyListItems.nth(await keyListItems.count - 2)];
14+
15+
// Verify that keys info in all columns is not empty
16+
for (const key of keysForTest) {
17+
const keyColumnsSelectors = [
18+
browserPage.cssSelectorKey,
19+
browserPage.cssKeyBadge,
20+
browserPage.cssKeyTtl,
21+
browserPage.cssKeySize
22+
];
23+
24+
for (const columnSelector of keyColumnsSelectors) {
25+
const keyRenderedName = await key.find(keyColumnsSelectors[0]).innerText;
26+
const listRenderedKeyInfo = await key.find(columnSelector).innerText;
27+
28+
await t.expect(listRenderedKeyInfo).notEql('', `"${keyRenderedName}" Key has empty data`);
29+
}
30+
}
31+
}
32+
}

tests/e2e/common-actions/cli-actions.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { CliPage } from '../pageObjects';
44
const cliPage = new CliPage();
55

66
export class CliActions {
7-
87
/**
98
* Check list of commands searched
109
* @param searchedCommand Searched command in Command Helper

tests/e2e/pageObjects/browser-page.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ export class BrowserPage {
1010
cssSelectorKey = '[data-testid^=key-]';
1111
cssFilteringLabel = '[data-testid=multi-search]';
1212
cssJsonValue = '[data-tesid=value-as-json]';
13+
cssVirtualTableRow = '[aria-label=row]';
14+
cssKeyBadge = '[data-testid^=badge-]';
15+
cssKeyTtl = '[data-testid^=ttl-]';
16+
cssKeySize = '[data-testid^=size-]';
1317
//-------------------------------------------------------------------------------------------
1418
//DECLARATION OF SELECTORS
1519
//*Declare all elements/components of the relevant page.

tests/e2e/tests/regression/browser/keys-all-databases.e2e.ts

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
11
import { t } from 'testcafe';
22
import { env, rte } from '../../../helpers/constants';
33
import {
4+
acceptLicenseTermsAndAddDatabaseApi,
45
acceptLicenseTermsAndAddOSSClusterDatabase,
56
acceptLicenseTermsAndAddRECloudDatabase,
67
acceptLicenseTermsAndAddREClusterDatabase,
78
acceptLicenseTermsAndAddSentinelDatabaseApi,
89
deleteDatabase
910
} from '../../../helpers/database';
10-
import { BrowserPage } from '../../../pageObjects';
11+
import { BrowserPage, MyRedisDatabasePage } from '../../../pageObjects';
1112
import {
1213
cloudDatabaseConfig,
1314
commonUrl,
1415
ossClusterConfig,
1516
ossSentinelConfig,
17+
ossStandaloneBigConfig,
1618
redisEnterpriseClusterConfig
1719
} from '../../../helpers/conf';
1820
import { Common } from '../../../helpers/common';
19-
import { deleteOSSClusterDatabaseApi, deleteAllSentinelDatabasesApi } from '../../../helpers/api/api-database';
21+
import { deleteOSSClusterDatabaseApi, deleteAllSentinelDatabasesApi, deleteStandaloneDatabaseApi } from '../../../helpers/api/api-database';
22+
import { BrowserActions } from '../../../common-actions/browser-actions';
2023

2124
const browserPage = new BrowserPage();
2225
const common = new Common();
26+
const myRedisDatabasePage = new MyRedisDatabasePage();
27+
const browserActions = new BrowserActions();
2328

2429
let keyName = common.generateWord(10);
2530
const verifyKeysAdded = async(): Promise<void> => {
@@ -86,3 +91,42 @@ test
8691
})('Verify that user can add Key in Sentinel Primary Group', async() => {
8792
await verifyKeysAdded();
8893
});
94+
test
95+
.meta({ rte: rte.standalone })
96+
.before(async() => {
97+
await acceptLicenseTermsAndAddDatabaseApi(ossStandaloneBigConfig, ossStandaloneBigConfig.databaseName);
98+
})
99+
.after(async() => {
100+
// Delete database
101+
await deleteStandaloneDatabaseApi(ossStandaloneBigConfig);
102+
})('Verify that user can scroll key virtualized table and see keys info displayed', async() => {
103+
const listItems = browserPage.virtualTableContainer.find(browserPage.cssVirtualTableRow);
104+
const maxNumberOfScrolls = 15;
105+
let numberOfScrolls = 0;
106+
107+
// Scroll down the virtualized list 15 times
108+
while (numberOfScrolls < maxNumberOfScrolls) {
109+
const currentLastRenderedItemIndex = await listItems.count - 1;
110+
const currentLastRenderedItemText = await listItems.nth(currentLastRenderedItemIndex).find(browserPage.cssSelectorKey).innerText;
111+
const currentLastRenderedItem = listItems.withText(currentLastRenderedItemText);
112+
113+
await t.scrollIntoView(currentLastRenderedItem);
114+
numberOfScrolls++;
115+
// Verify that last rendered item name is not empty
116+
await t.expect(currentLastRenderedItemText).notEql('', `"${currentLastRenderedItemText}" Key name is empty`);
117+
}
118+
119+
// Verify that keys info in row not empty
120+
await browserActions.verifyAllRenderedKeysHasText();
121+
122+
await t.click(browserPage.refreshKeysButton);
123+
// Verify that keys info in row not empty after refreshing page
124+
await browserActions.verifyAllRenderedKeysHasText();
125+
126+
// Go to Workbench page
127+
await t.click(myRedisDatabasePage.workbenchButton);
128+
// Go to Browser Page
129+
await t.click(myRedisDatabasePage.browserButton);
130+
// Verify that keys info in row not empty after switching between pages
131+
await browserActions.verifyAllRenderedKeysHasText();
132+
});

tests/e2e/tests/regression/workbench/command-results.e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ test.skip
9090
// Verify that search results are displayed in Text view
9191
await t.expect(workbenchPage.queryCardContainer.nth(0).find(workbenchPage.cssQueryTextResult).visible).ok('The result is displayed in Text view');
9292
});
93-
test('Big output in workbench is visible in virtuallized table', async t => {
93+
test('Big output in workbench is visible in virtualized table', async t => {
9494
// Send commands
9595
const command = 'graph.query t "UNWIND range(1,1000) AS x return x"';
9696
const bottomText = 'Query internal execution time';

0 commit comments

Comments
 (0)