Skip to content

Commit 4a11b29

Browse files
fix e2e tests
1 parent 66b650c commit 4a11b29

File tree

3 files changed

+50
-35
lines changed

3 files changed

+50
-35
lines changed

tests/e2e/helpers/database.ts

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
import { t } from 'testcafe'
2-
import { MyRedisDatabasePage } from '../pageObjects/my-redis-databases-page'
3-
import { AddNewDatabaseParameters, SentinelParameters, AddRedisDatabasePage, OSSClusterParameters } from '../pageObjects/add-redis-database-page'
4-
import { DiscoverMasterGroupsPage } from '../pageObjects/sentinel/discovered-sentinel-master-groups-page'
5-
import { AutoDiscoverREDatabases } from '../pageObjects/auto-discover-redis-enterprise-databases'
6-
import { BrowserPage } from '../pageObjects/browser-page'
1+
import { t } from 'testcafe';
2+
import { MyRedisDatabasePage } from '../pageObjects/my-redis-databases-page';
3+
import { AddNewDatabaseParameters, SentinelParameters, AddRedisDatabasePage, OSSClusterParameters } from '../pageObjects/add-redis-database-page';
4+
import { DiscoverMasterGroupsPage } from '../pageObjects/sentinel/discovered-sentinel-master-groups-page';
5+
import { AutoDiscoverREDatabases } from '../pageObjects/auto-discover-redis-enterprise-databases';
6+
import { BrowserPage } from '../pageObjects/browser-page';
7+
import { UserAgreementPage } from '../pageObjects';
78

8-
const myRedisDatabasPage = new MyRedisDatabasePage
9-
const addRedisDatabasePage = new AddRedisDatabasePage
10-
const discoverMasterGroupsPage = new DiscoverMasterGroupsPage
9+
const myRedisDatabasePage = new MyRedisDatabasePage;
10+
const addRedisDatabasePage = new AddRedisDatabasePage;
11+
const discoverMasterGroupsPage = new DiscoverMasterGroupsPage;
1112
const autoDiscoverREDatabases = new AutoDiscoverREDatabases;
1213
const browserPage = new BrowserPage;
14+
const userAgreementPage = new UserAgreementPage;
1315

1416
/**
1517
* Add a new database manually using host and port
@@ -21,7 +23,7 @@ export async function addNewStandaloneDatabase(databaseParameters: AddNewDatabas
2123
//Click for saving
2224
await t.click(addRedisDatabasePage.addRedisDatabaseButton);
2325
//Wait for database to be exist
24-
await t.expect(myRedisDatabasPage.dbNameList.withExactText(databaseParameters.databaseName).exists).ok('The existence of the database', { timeout: 60000 });
26+
await t.expect(myRedisDatabasePage.dbNameList.withExactText(databaseParameters.databaseName).exists).ok('The existence of the database', { timeout: 60000 });
2527
}
2628

2729
/**
@@ -68,9 +70,9 @@ export async function addOSSClusterDatabase(databaseParameters: OSSClusterParame
6870
//Click for saving
6971
await t.click(addRedisDatabasePage.addRedisDatabaseButton);
7072
//Check for info message that DB was added
71-
await t.expect(myRedisDatabasPage.databaseInfoMessage.exists).ok('Check that info message exists', { timeout: 60000 });
73+
await t.expect(myRedisDatabasePage.databaseInfoMessage.exists).ok('Check that info message exists', { timeout: 60000 });
7274
//Wait for database to be exist
73-
await t.expect(myRedisDatabasPage.dbNameList.withExactText(databaseParameters.ossClusterDatabaseName).exists).ok('The existence of the database', { timeout: 60000 });
75+
await t.expect(myRedisDatabasePage.dbNameList.withExactText(databaseParameters.ossClusterDatabaseName).exists).ok('The existence of the database', { timeout: 60000 });
7476
}
7577

7678
/**
@@ -91,6 +93,20 @@ export async function addNewRECloudDatabase(cloudAPIAccessKey: string, cloudAPIS
9193
await t.click(autoDiscoverREDatabases.addSelectedDatabases);
9294
//Wait for database to be exist in the My redis databases list
9395
await t.click(autoDiscoverREDatabases.viewDatabasesButton);
94-
await t.expect(myRedisDatabasPage.dbNameList.withExactText(databaseName).exists).ok('The existence of the database', { timeout: 60000 });
96+
await t.expect(myRedisDatabasePage.dbNameList.withExactText(databaseName).exists).ok('The existence of the database', { timeout: 60000 });
9597
return databaseName;
9698
}
99+
100+
/**
101+
* Accept License terms and add database
102+
* @param databaseParameters The database parameters
103+
* @param databaseName The database name
104+
*/
105+
export async function acceptLicenseTermsAndAddDatabase(databaseParameters: AddNewDatabaseParameters, databaseName: string): Promise<void> {
106+
await t.maximizeWindow();
107+
await userAgreementPage.acceptLicenseTerms();
108+
await t.expect(addRedisDatabasePage.addDatabaseButton.exists).ok('The add redis database view', {timeout: 20000});
109+
await addNewStandaloneDatabase(databaseParameters);
110+
//Connect to DB
111+
await myRedisDatabasePage.clickOnDBByName(databaseName);
112+
}

tests/e2e/pageObjects/workbench-page.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export class WorkbenchPage {
117117
await t.click(this.textViewTypeOption);
118118
}
119119

120-
//Select Tab;e view option in Workbench results
120+
//Select Table view option in Workbench results
121121
async selectViewTypeTable(): Promise<void>{
122122
await t.click(this.selectViewType);
123123
await t.click(this.tableViewTypeOption);
@@ -132,4 +132,14 @@ export class WorkbenchPage {
132132
await t.typeText(this.queryInput, command, { replace: true, speed: speed});
133133
await t.click(this.submitCommandButton);
134134
}
135+
136+
/**
137+
* Send commands array in Workbench page
138+
* @param commands The array of commands to send
139+
*/
140+
async sendCommandsArrayInWorkbench(commands: string[]): Promise<void> {
141+
for(let command of commands) {
142+
await this.sendCommandInWorkbench(command);
143+
}
144+
}
135145
}

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

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
1-
import { addNewStandaloneDatabase } from '../../../helpers/database';
1+
import { acceptLicenseTermsAndAddDatabase } from '../../../helpers/database';
22
import { WorkbenchPage } from '../../../pageObjects/workbench-page';
3-
import { MyRedisDatabasePage, UserAgreementPage, AddRedisDatabasePage } from '../../../pageObjects';
3+
import { MyRedisDatabasePage } from '../../../pageObjects';
44
import {
55
commonUrl,
66
ossStandaloneConfig
77
} from '../../../helpers/conf';
88

99
const myRedisDatabasePage = new MyRedisDatabasePage();
10-
const userAgreementPage = new UserAgreementPage();
11-
const addRedisDatabasePage = new AddRedisDatabasePage();
1210
const workbenchPage = new WorkbenchPage();
1311

1412
const indexName = 'idx';
@@ -18,29 +16,22 @@ const commandsForIndex = [
1816
'HMSET product:2 price 100'
1917
];
2018

21-
fixture `Command results at Workbench`
19+
//skipped due the inaccessibility of the iframe
20+
fixture.skip `Command results at Workbench`
2221
.meta({type: 'regression'})
2322
.page(commonUrl)
2423
.beforeEach(async t => {
25-
await t.maximizeWindow();
26-
await userAgreementPage.acceptLicenseTerms();
27-
await t.expect(addRedisDatabasePage.addDatabaseButton.exists).ok('The add redis database view', {timeout: 20000});
28-
await addNewStandaloneDatabase(ossStandaloneConfig);
29-
//Connect to DB
30-
await myRedisDatabasePage.clickOnDBByName(ossStandaloneConfig.databaseName);
24+
await acceptLicenseTermsAndAddDatabase(ossStandaloneConfig, ossStandaloneConfig.databaseName);
3125
//Add index and data
3226
await t.click(myRedisDatabasePage.workbenchButton);
33-
for(let command of commandsForIndex) {
34-
await workbenchPage.sendCommandInWorkbench(command);
35-
}
27+
await workbenchPage.sendCommandsArrayInWorkbench(commandsForIndex);
3628
})
37-
.afterEach(async t => {
29+
.afterEach(async() => {
3830
//Drop index and dbs
3931
await workbenchPage.sendCommandInWorkbench('FT.DROPINDEX products DD');
4032
await myRedisDatabasePage.deleteAllDatabases();
4133
})
42-
//skipped due the inaccessibility of the iframe
43-
test.skip('Verify that user can switches between Table and Text for FT.INFO and see results corresponding to their views', async t => {
34+
test('Verify that user can switches between Table and Text for FT.INFO and see results corresponding to their views', async t => {
4435
const infoCommand = `FT.INFO ${indexName}`;
4536
//Send FT.INFO and switch to Text view
4637
await workbenchPage.sendCommandInWorkbench(infoCommand);
@@ -50,8 +41,7 @@ test.skip('Verify that user can switches between Table and Text for FT.INFO and
5041
await workbenchPage.selectViewTypeTable();
5142
await t.expect(await workbenchPage.queryCardContainer.nth(0).find(workbenchPage.cssQueryTableResult).exists).ok(`The table view is switched for command FT.INFO`);
5243
});
53-
//skipped due the inaccessibility of the iframe
54-
test.skip('Verify that user can switches between Table and Text for FT.SEARCH and see results corresponding to their views', async t => {
44+
test('Verify that user can switches between Table and Text for FT.SEARCH and see results corresponding to their views', async t => {
5545
const searchCommand = `FT.SEARCH ${indexName} *`;
5646
//Send FT.SEARCH and switch to Text view
5747
await workbenchPage.sendCommandInWorkbench(searchCommand);
@@ -61,8 +51,7 @@ test.skip('Verify that user can switches between Table and Text for FT.SEARCH an
6151
await workbenchPage.selectViewTypeTable();
6252
await t.expect(await workbenchPage.queryCardContainer.nth(0).find(workbenchPage.cssQueryTableResult).exists).ok(`The table view is switched for command FT.SEARCH`);
6353
});
64-
//skipped due the inaccessibility of the iframe
65-
test.skip('Verify that user can switches between Table and Text for FT.AGGREGATE and see results corresponding to their views', async t => {
54+
test('Verify that user can switches between Table and Text for FT.AGGREGATE and see results corresponding to their views', async t => {
6655
const aggregateCommand = `FT.Aggregate ${indexName} * GROUPBY 0 REDUCE MAX 1 @price AS max_price`;
6756
//Send FT.AGGREGATE and switch to Text view
6857
await workbenchPage.sendCommandInWorkbench(aggregateCommand);

0 commit comments

Comments
 (0)