Skip to content

Commit bd6a48c

Browse files
Merge pull request #2045 from RedisInsight/e2e/feature/refactoring
refactoring for notification
2 parents aa03a73 + 4e30195 commit bd6a48c

36 files changed

+476
-494
lines changed

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

Lines changed: 0 additions & 55 deletions
This file was deleted.

tests/e2e/helpers/api/api-database.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { t } from 'testcafe';
22
import { Chance } from 'chance';
33
import * as request from 'supertest';
44
import { asyncFilter, doAsyncStuff } from '../async-helper';
5-
import { AddNewDatabaseParameters, OSSClusterParameters, databaseParameters, SentinelParameters, ClusterNodes } from '../../pageObjects/add-redis-database-page';
5+
import { AddNewDatabaseParameters, OSSClusterParameters, databaseParameters, SentinelParameters, ClusterNodes } from '../../pageObjects/components/myRedisDatabase/add-redis-database';
66
import { Common } from '../common';
77

88
const chance = new Chance();

tests/e2e/helpers/database.ts

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
import { Selector, t } from 'testcafe';
2-
import { AddNewDatabaseParameters, SentinelParameters, OSSClusterParameters } from '../pageObjects/add-redis-database-page';
2+
import { AddNewDatabaseParameters, SentinelParameters, OSSClusterParameters } from '../pageObjects/components/myRedisDatabase/add-redis-database';
33
import { DiscoverMasterGroupsPage } from '../pageObjects/sentinel/discovered-sentinel-master-groups-page';
44
import {
55
MyRedisDatabasePage,
66
BrowserPage,
77
AutoDiscoverREDatabases,
8-
AddRedisDatabasePage,
9-
UserAgreementPage,
8+
UserAgreementPage
109
} from '../pageObjects';
1110
import { addNewStandaloneDatabaseApi, discoverSentinelDatabaseApi, getDatabaseIdByName } from './api/api-database';
1211

1312
const myRedisDatabasePage = new MyRedisDatabasePage();
14-
const addRedisDatabasePage = new AddRedisDatabasePage();
1513
const discoverMasterGroupsPage = new DiscoverMasterGroupsPage();
1614
const autoDiscoverREDatabases = new AutoDiscoverREDatabases();
1715
const browserPage = new BrowserPage();
@@ -23,10 +21,10 @@ const userAgreementPage = new UserAgreementPage();
2321
*/
2422
export async function addNewStandaloneDatabase(databaseParameters: AddNewDatabaseParameters): Promise<void> {
2523
// Fill the add database form
26-
await addRedisDatabasePage.addRedisDataBase(databaseParameters);
24+
await myRedisDatabasePage.AddRedisDatabase.addRedisDataBase(databaseParameters);
2725
// Click for saving
2826
await t
29-
.click(addRedisDatabasePage.addRedisDatabaseButton)
27+
.click(myRedisDatabasePage.AddRedisDatabase.addRedisDatabaseButton)
3028
// Wait for database to be exist
3129
.expect(myRedisDatabasePage.dbNameList.withExactText(databaseParameters.databaseName ?? '').exists).ok('The database not displayed', { timeout: 10000 })
3230
// Close message
@@ -39,10 +37,10 @@ export async function addNewStandaloneDatabase(databaseParameters: AddNewDatabas
3937
*/
4038
export async function discoverSentinelDatabase(databaseParameters: SentinelParameters): Promise<void> {
4139
// Fill sentinel parameters to auto-discover Master Groups
42-
await addRedisDatabasePage.discoverSentinelDatabases(databaseParameters);
40+
await myRedisDatabasePage.AddRedisDatabase.discoverSentinelDatabases(databaseParameters);
4341
// Click for autodiscover
4442
await t
45-
.click(addRedisDatabasePage.discoverSentinelDatabaseButton)
43+
.click(myRedisDatabasePage.AddRedisDatabase.discoverSentinelDatabaseButton)
4644
.expect(discoverMasterGroupsPage.addPrimaryGroupButton.exists).ok('User is not on the second step of Sentinel flow', { timeout: 10000 });
4745
// Select Master Groups and Add to RedisInsight
4846
await discoverMasterGroupsPage.addMasterGroups();
@@ -55,10 +53,10 @@ export async function discoverSentinelDatabase(databaseParameters: SentinelParam
5553
*/
5654
export async function addNewREClusterDatabase(databaseParameters: AddNewDatabaseParameters): Promise<void> {
5755
// Fill the add database form
58-
await addRedisDatabasePage.addAutodiscoverREClucterDatabase(databaseParameters);
56+
await myRedisDatabasePage.AddRedisDatabase.addAutodiscoverREClucterDatabase(databaseParameters);
5957
// Click on submit button
6058
await t
61-
.click(addRedisDatabasePage.addRedisDatabaseButton)
59+
.click(myRedisDatabasePage.AddRedisDatabase.addRedisDatabaseButton)
6260
// Wait for database to be exist in the list of Autodiscover databases and select it
6361
.expect(autoDiscoverREDatabases.databaseNames.withExactText(databaseParameters.databaseName ?? '').exists).ok('The database not displayed', { timeout: 10000 })
6462
.typeText(autoDiscoverREDatabases.search, databaseParameters.databaseName ?? '')
@@ -74,10 +72,10 @@ export async function addNewREClusterDatabase(databaseParameters: AddNewDatabase
7472
*/
7573
export async function addOSSClusterDatabase(databaseParameters: OSSClusterParameters): Promise<void> {
7674
// Enter required parameters for OSS Cluster
77-
await addRedisDatabasePage.addOssClusterDatabase(databaseParameters);
75+
await myRedisDatabasePage.AddRedisDatabase.addOssClusterDatabase(databaseParameters);
7876
// Click for saving
7977
await t
80-
.click(addRedisDatabasePage.addRedisDatabaseButton)
78+
.click(myRedisDatabasePage.AddRedisDatabase.addRedisDatabaseButton)
8179
// Check for info message that DB was added
8280
.expect(myRedisDatabasePage.databaseInfoMessage.exists).ok('Info message not exists', { timeout: 10000 })
8381
// Wait for database to be exist
@@ -91,14 +89,14 @@ export async function addOSSClusterDatabase(databaseParameters: OSSClusterParame
9189
*/
9290
export async function addNewRECloudDatabase(cloudAPIAccessKey: string, cloudAPISecretKey: string): Promise<string> {
9391
// Fill the add database form and Submit
94-
await addRedisDatabasePage.addAutodiscoverRECloudDatabase(cloudAPIAccessKey, cloudAPISecretKey);
95-
await t.click(addRedisDatabasePage.addRedisDatabaseButton);
92+
await myRedisDatabasePage.AddRedisDatabase.addAutodiscoverRECloudDatabase(cloudAPIAccessKey, cloudAPISecretKey);
93+
await t.click(myRedisDatabasePage.AddRedisDatabase.addRedisDatabaseButton);
9694
// Select subscriptions
97-
await t.click(addRedisDatabasePage.selectAllCheckbox);
98-
await t.click(addRedisDatabasePage.showDatabasesButton);
95+
await t.click(myRedisDatabasePage.AddRedisDatabase.selectAllCheckbox);
96+
await t.click(myRedisDatabasePage.AddRedisDatabase.showDatabasesButton);
9997
// Select databases for adding
10098
const databaseName = await browserPage.getDatabasesName();
101-
await t.click(addRedisDatabasePage.selectAllCheckbox);
99+
await t.click(myRedisDatabasePage.AddRedisDatabase.selectAllCheckbox);
102100
await t.click(autoDiscoverREDatabases.addSelectedDatabases);
103101
// Wait for database to be exist in the My redis databases list
104102
await t.click(autoDiscoverREDatabases.viewDatabasesButton);
@@ -178,9 +176,9 @@ export async function acceptLicenseTermsAndAddRECloudDatabase(databaseParameters
178176
const startTime = Date.now();
179177

180178
await acceptLicenseTerms();
181-
await addRedisDatabasePage.addRedisDataBase(databaseParameters);
179+
await myRedisDatabasePage.AddRedisDatabase.addRedisDataBase(databaseParameters);
182180
// Click for saving
183-
await t.click(addRedisDatabasePage.addRedisDatabaseButton);
181+
await t.click(myRedisDatabasePage.AddRedisDatabase.addRedisDatabaseButton);
184182
await t.wait(3000);
185183
// Reload page until db appears
186184
do {
@@ -201,9 +199,9 @@ export async function addRECloudDatabase(databaseParameters: AddNewDatabaseParam
201199
const dbSelector = myRedisDatabasePage.dbNameList.withExactText(databaseParameters.databaseName ?? '');
202200
const startTime = Date.now();
203201

204-
await addRedisDatabasePage.addRedisDataBase(databaseParameters);
202+
await myRedisDatabasePage.AddRedisDatabase.addRedisDataBase(databaseParameters);
205203
// Click for saving
206-
await t.click(addRedisDatabasePage.addRedisDatabaseButton);
204+
await t.click(myRedisDatabasePage.AddRedisDatabase.addRedisDatabaseButton);
207205
await t.wait(3000);
208206
// Reload page until db appears
209207
do {
@@ -225,7 +223,7 @@ export async function acceptLicenseAndConnectToRedisStack(): Promise<void> {
225223
//Connect to DB
226224
await t
227225
.click(myRedisDatabasePage.NavigationPanel.myRedisDBButton)
228-
.click(addRedisDatabasePage.connectToRedisStackButton);
226+
.click(myRedisDatabasePage.AddRedisDatabase.connectToRedisStackButton);
229227
}
230228

231229
/**
@@ -234,7 +232,7 @@ export async function acceptLicenseAndConnectToRedisStack(): Promise<void> {
234232
*/
235233
export async function deleteDatabase(databaseName: string): Promise<void> {
236234
await t.click(myRedisDatabasePage.NavigationPanel.myRedisDBButton);
237-
if (await addRedisDatabasePage.addDatabaseButton.exists) {
235+
if (await myRedisDatabasePage.AddRedisDatabase.addDatabaseButton.exists) {
238236
await deleteDatabaseByNameApi(databaseName);
239237
}
240238
}
@@ -245,7 +243,7 @@ export async function deleteDatabase(databaseName: string): Promise<void> {
245243
*/
246244
export async function deleteCustomDatabase(databaseName: string): Promise<void> {
247245
await t.click(myRedisDatabasePage.NavigationPanel.myRedisDBButton);
248-
if (await addRedisDatabasePage.addDatabaseButton.exists) {
246+
if (await myRedisDatabasePage.AddRedisDatabase.addDatabaseButton.exists) {
249247
await myRedisDatabasePage.deleteDatabaseByName(databaseName);
250248
}
251249
}
@@ -256,7 +254,7 @@ export async function deleteCustomDatabase(databaseName: string): Promise<void>
256254
* @param databaseName The database name
257255
*/
258256
export async function acceptTermsAddDatabaseOrConnectToRedisStack(databaseParameters: AddNewDatabaseParameters, databaseName: string): Promise<void> {
259-
if (await addRedisDatabasePage.addDatabaseButton.exists) {
257+
if (await myRedisDatabasePage.AddRedisDatabase.addDatabaseButton.exists) {
260258
await acceptLicenseTermsAndAddDatabase(databaseParameters, databaseName);
261259
}
262260
else {

tests/e2e/helpers/notifications.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { join } from 'path';
22
import * as os from 'os';
3-
import { NotificationParameters } from '../pageObjects/notification-page';
3+
import { NotificationParameters } from '../pageObjects/components/notification-panel';
44

55
const workingDirectory = process.env.APP_FOLDER_ABSOLUTE_PATH
66
|| (join(os.homedir(), process.env.APP_FOLDER_NAME || '.redisinsight-v2'));

tests/e2e/pageObjects/browser-page.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import { t, Selector } from 'testcafe';
22
import { Common } from '../helpers/common';
33
import { InstancePage } from './instance-page';
4+
import { BulkActions } from './components/browser';
45

56
export class BrowserPage extends InstancePage {
7+
BulkActions = new BulkActions();
8+
69
//CSS Selectors
710
cssSelectorGrid = '[aria-label="grid"]';
811
cssSelectorRows = '[aria-label="row"]';

tests/e2e/pageObjects/bulk-actions-page.ts renamed to tests/e2e/pageObjects/components/browser/bulk-actions.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import { Selector, t } from 'testcafe';
2-
import { BrowserPage } from './browser-page';
32

4-
const browserPage = new BrowserPage();
5-
6-
export class BulkActionsPage {
3+
export class BulkActions {
74
//-------------------------------------------------------------------------------------------
85
//DECLARATION OF SELECTORS
96
//*Declare all elements/components of the relevant page.
@@ -41,12 +38,10 @@ export class BulkActionsPage {
4138
bulkUploadInput = Selector('[data-testid=bulk-upload-file-input]');
4239

4340
/**
44-
* Open Bulk Actions and confirm deletion
45-
*/
41+
* Open Bulk Actions and confirm deletion
42+
*/
4643
async startBulkDelete(): Promise<void> {
47-
// TODO remove dep from browser page
4844
await t
49-
.click(browserPage.bulkActionsButton)
5045
.click(this.actionButton)
5146
.click(this.bulkApplyButton);
5247
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { BulkActions } from './bulk-actions';
2+
3+
export {
4+
BulkActions
5+
};

tests/e2e/pageObjects/add-redis-database-page.ts renamed to tests/e2e/pageObjects/components/myRedisDatabase/add-redis-database.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { t, Selector } from 'testcafe';
22

3-
export class AddRedisDatabasePage {
3+
export class AddRedisDatabase {
44
//-------------------------------------------------------------------------------------------
55
//DECLARATION OF SELECTORS
66
//*Declare all elements/components of the relevant page.

tests/e2e/pageObjects/components/navigation-panel.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { Selector } from 'testcafe';
22

3+
import NotificationPanel from './notification-panel';
4+
35
export class NavigationPanel {
6+
NotificationPanel = new NotificationPanel();
7+
48
workbenchButton = Selector('[data-testid=workbench-page-btn]');
59
analysisPageButton = Selector('[data-testid=analytics-page-btn]');
610
browserButton = Selector('[data-testid=browser-page-btn]');

tests/e2e/pageObjects/notification-page.ts renamed to tests/e2e/pageObjects/components/notification-panel.ts

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
import { Selector, t } from 'testcafe';
2-
import { SettingsPage } from './settings-page';
3-
import { MyRedisDatabasePage } from './my-redis-databases-page';
1+
import { Selector } from 'testcafe';
42

5-
const settingsPage = new SettingsPage();
6-
const myRedisDatabasePage = new MyRedisDatabasePage();
7-
8-
export class NotificationPage {
3+
class NotificationPanel {
94
//-------------------------------------------------------------------------------------------
105
//DECLARATION OF SELECTORS
116
//*Declare all elements/components of the relevant page.
@@ -49,25 +44,6 @@ export class NotificationPage {
4944
const converted = epochTimeConversion.split(' ');
5045
return [converted[2], converted[1], converted[3]].join(' ');
5146
}
52-
53-
/**
54-
* Turn on notifications in Settings
55-
*/
56-
async changeNotificationsSwitcher(toValue: boolean): Promise<void> {
57-
await t
58-
.click(myRedisDatabasePage.NavigationPanel.settingsButton)
59-
.click(settingsPage.accordionAppearance);
60-
if (toValue === true) {
61-
if (await settingsPage.getNotificationsSwitcherValue() === 'false') {
62-
await t.click(settingsPage.switchNotificationsOption);
63-
}
64-
}
65-
if (toValue === false) {
66-
if (await settingsPage.getNotificationsSwitcherValue() === 'true') {
67-
await t.click(settingsPage.switchNotificationsOption);
68-
}
69-
}
70-
}
7147
}
7248
/**
7349
* Notification parameters
@@ -87,3 +63,5 @@ export type NotificationParameters = {
8763
colorCategory?: string,
8864
rbgColor?: string
8965
};
66+
67+
export default NotificationPanel;

0 commit comments

Comments
 (0)