Skip to content

Commit 0500d10

Browse files
Merge pull request #4287 from RedisInsight/e2e/fe/feature/RI-6372-remember-context-when-switching-btw-rdi
add e2e for navigation
2 parents a191b4c + ea6a7cb commit 0500d10

File tree

4 files changed

+64
-30
lines changed

4 files changed

+64
-30
lines changed

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ export class NavigationHeader {
55
insightsTriggerButton = Selector('[data-testid=insights-trigger]');
66
cloudSignInButton = Selector('[data-testid=cloud-sign-in-btn]');
77
copilotButton = Selector('[data-testid=copilot-trigger]');
8+
dbName = Selector('[data-testid=nav-instance-popover-btn]');
9+
homeLinkNavigation = Selector('[class*=homePageLink]');
10+
dbListInstance = Selector('[data-testid^=instance-item-]');
11+
rdiNavigationTab = Selector('[data-testid*=Integration-tab-id]');
12+
dbListInput = Selector('[data-testid=instances-nav-popover-search]');
813

914
/**
1015
* Open/Close Panel
@@ -17,4 +22,18 @@ export class NavigationHeader {
1722
await t.click(this.insightsTriggerButton);
1823
}
1924
}
25+
26+
/**
27+
* Get all databases from List of DBs page
28+
*/
29+
async getAllDatabases(): Promise<string[]> {
30+
const databases: string[] = [];
31+
const n = await this.dbListInstance.count;
32+
33+
for(let k = 0; k < n; k++) {
34+
const name = await this.dbListInstance.nth(k).textContent;
35+
databases.push(name);
36+
}
37+
return databases;
38+
}
2039
}

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

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,12 @@ export class OverviewPanel {
1414
myRedisDBLink = Selector('[data-testid=my-redis-db-btn]', { timeout: 1000 });
1515
changeIndexBtn = Selector('[data-testid=change-index-btn]');
1616
databaseInfoIcon = Selector('[data-testid=db-info-icon]');
17-
dbName = Selector('[data-testid=nav-instance-popover-btn]');
18-
homeLinkNavigation = Selector('[class*=homePageLink]');
19-
dbListInstance = Selector('[data-testid^=instance-item-]');
20-
rdiNavigationTab = Selector('[data-testid*=Integration-tab-id]');
2117
autoRefreshArrow = Selector('[data-testid=auto-refresh-overview-auto-refresh-config-btn]');
2218
autoRefreshCheckbox = Selector('[data-testid=auto-refresh-overview-auto-refresh-switch]');
2319
// PANEL
2420
databaseInfoToolTip = Selector('[data-testid=db-info-tooltip]', { timeout: 2000 });
2521
// INPUTS
2622
changeIndexInput = Selector('[data-testid=change-index-input]');
27-
dbListInput = Selector('[data-testid=instances-nav-popover-search]');
28-
2923
autoRefreshRateInput = Selector('[data-testid=auto-refresh-overview-refresh-rate]');
3024
inlineItemEditor = Selector('[data-testid=inline-item-editor]');
3125

@@ -55,20 +49,6 @@ export class OverviewPanel {
5549
await t.expect(this.overviewSpinner.visible).notOk('cpu is not calculated, spinner is still displayed');
5650
}
5751

58-
/**
59-
* Get all databases from List of DBs page
60-
*/
61-
async getAllDatabases(): Promise<string[]> {
62-
const databases: string[] = [];
63-
const n = await this.dbListInstance.count;
64-
65-
for(let k = 0; k < n; k++) {
66-
const name = await this.dbListInstance.nth(k).textContent;
67-
databases.push(name);
68-
}
69-
return databases;
70-
}
71-
7252
/**
7353
* set auto refresh rate
7454
* @param rate rate value

tests/e2e/tests/web/critical-path/rdi/navigation.e2e.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ const rdiInstance: AddNewRdiParameters = {
2626
password: '111'
2727
};
2828

29+
const rdiInstance2: AddNewRdiParameters = {
30+
name: 'testInstance2',
31+
url: 'https://11.111.111.214',
32+
username: 'username',
33+
password: '111'
34+
};
35+
2936
//skip the tests until rdi integration is added
3037
fixture.skip `Rdi Navigation`
3138
.meta({ type: 'critical_path', feature: 'rdi' })
@@ -107,3 +114,31 @@ test('Verify that confirmation message is displayed, if there are unsaved change
107114
await t.click(rdiInstancePage.proceedNavigateDialog);
108115
await t.expect(rdiInstancesListPage.addRdiInstanceButton.exists).ok('the user is not navigated to the panel');
109116
});
117+
test.before(async() => {
118+
await rdiApiRequests.addNewRdiApi(rdiInstance);
119+
await rdiApiRequests.addNewRdiApi(rdiInstance2);
120+
await databaseHelper.acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig)})
121+
('Verify that context is saved when user switches to db', async() => {
122+
const jobName = 'jobName';
123+
const textForMonaco = 'here should be a job';
124+
125+
await myRedisDatabasePage.setActivePage(RedisOverviewPage.Rdi);
126+
await rdiInstancesListPage.clickRdiByName(rdiInstance.name);
127+
await rdiInstancePage.selectStartPipelineOption(RdiPopoverOptions.Pipeline);
128+
129+
await t.click(rdiInstancePage.templateCancelButton);
130+
await rdiInstancePage.MonacoEditor.sendTextToMonaco(rdiInstancePage.jobsInput, textForMonaco, false);
131+
await t.click(rdiInstancePage.NavigationHeader.dbName);
132+
await t.click(rdiInstancePage.NavigationHeader.dbListInstance.withText(ossStandaloneConfig.databaseName));
133+
134+
await t.click(rdiInstancePage.NavigationHeader.dbName);
135+
await t.click(rdiInstancePage.NavigationHeader.dbListInstance.withText(rdiInstance.name));
136+
137+
const text = await rdiInstancePage.MonacoEditor.getTextFromMonaco();
138+
await t.expect(text).eql(textForMonaco, 'rdi context is not saved between rdi and db');
139+
140+
await t.click(rdiInstancePage.NavigationHeader.dbName);
141+
await t.click(rdiInstancePage.NavigationHeader.dbListInstance.withText(rdiInstance2.name));
142+
143+
await t.expect(rdiInstancePage.selectOptionDialog.exists).ok('rdi context is saved between rdi')
144+
});

tests/e2e/tests/web/regression/database/navigation.e2e.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,26 +50,26 @@ test('Verify that user can navigate to instances using navigation widget', async
5050
await myRedisDatabasePage.clickOnDBByName(
5151
ossStandaloneConfig.databaseName
5252
);
53-
await t.click(browserPage.OverviewPanel.dbName)
54-
let dbWidgetNames = await browserPage.OverviewPanel.getAllDatabases();
53+
await t.click(browserPage.NavigationHeader.dbName)
54+
let dbWidgetNames = await browserPage.NavigationHeader.getAllDatabases();
5555
await t.expect(dbListPageNames).eql(dbWidgetNames, 'DB Lists have the same names');
56-
await t.click(browserPage.OverviewPanel.dbListInstance.withText(ossStandaloneV7Config.databaseName));
57-
await t.expect(browserPage.OverviewPanel.dbName.textContent).eql(ossStandaloneV7Config.databaseName, 'user can not be navigated');
58-
await t.click(browserPage.OverviewPanel.dbName)
59-
await t.click(browserPage.OverviewPanel.homeLinkNavigation);
56+
await t.click(browserPage.NavigationHeader.dbListInstance.withText(ossStandaloneV7Config.databaseName));
57+
await t.expect(browserPage.NavigationHeader.dbName.textContent).eql(ossStandaloneV7Config.databaseName, 'user can not be navigated');
58+
await t.click(browserPage.NavigationHeader.dbName)
59+
await t.click(browserPage.NavigationHeader.homeLinkNavigation);
6060
await t.expect(myRedisDatabasePage.hostPort.exists).ok('Db list page is not opened');
6161

6262

6363
await myRedisDatabasePage.clickOnDBByName(
6464
ossStandaloneConfig.databaseName
6565
)
6666
await t.debug();
67-
await t.click(browserPage.OverviewPanel.dbName)
68-
await t.typeText(browserPage.OverviewPanel.dbListInput, ossStandaloneV7Config.databaseName);
67+
await t.click(browserPage.NavigationHeader.dbName)
68+
await t.typeText(browserPage.NavigationHeader.dbListInput, ossStandaloneV7Config.databaseName);
6969
await t.debug();
70-
dbWidgetNames = await browserPage.OverviewPanel.getAllDatabases();
70+
dbWidgetNames = await browserPage.NavigationHeader.getAllDatabases();
7171
await t.expect(dbWidgetNames.length).eql(1, 'DB List is not searched');
72-
await t.click(browserPage.OverviewPanel.rdiNavigationTab);
72+
await t.click(browserPage.NavigationHeader.rdiNavigationTab);
7373

7474
//TODO uncomment when RDI e2e starts running
7575
//await t.expect(dbListPageNames.length).eql(1, 'RDI List is not searched');

0 commit comments

Comments
 (0)