Skip to content

Commit d24c1da

Browse files
Merge pull request #2975 from RedisInsight/e2e/feature/RI-4950_tutorials-home-page
add test for displaying Insights panel on welcome and list of dbs
2 parents 855abe9 + 613d1a8 commit d24c1da

File tree

6 files changed

+61
-2
lines changed

6 files changed

+61
-2
lines changed

tests/e2e/helpers/constants.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,9 @@ export enum ExploreTabs {
8181
Tips = 'Tips',
8282
}
8383

84+
export enum Compatibility {
85+
SearchAndQuery = 'search',
86+
Json = 'json',
87+
TimeSeries = 'time-series'
88+
}
89+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { Selector, t } from 'testcafe';
2+
import { Compatibility } from '../../helpers/constants';
3+
4+
export class CompatibilityPromotion {
5+
linkMask = '[data-testid="guide-icon-$name"]';
6+
/**
7+
* Click on link
8+
* @param name Name of the compatibility
9+
*/
10+
async clickOnLinkByName(name: Compatibility): Promise<void> {
11+
const link = Selector(this.linkMask.replace(/\$name/g, name));
12+
await t.click(link);
13+
}
14+
}

tests/e2e/pageObjects/components/explore-tab.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ export class ExploreTab {
2626
codeBlock = Selector('[data-testid=code-button-block-content]');
2727
codeBlockLabel = Selector('[data-testid=code-button-block-label]');
2828
cloudFreeLinkTooltip = Selector('[data-testid=tutorials-get-started-link]');
29+
openDatabasePopover = Selector('[data-testid=database-not-opened-popover]');
2930
//Custom tutorials
3031
customTutorials = Selector('[data-testid=accordion-button-custom-tutorials]');
3132
tutorialOpenUploadButton = Selector('[data-testid=open-upload-tutorial-btn]');

tests/e2e/pageObjects/my-redis-databases-page.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ import { t, Selector } from 'testcafe';
22
import { DatabaseAPIRequests } from '../helpers/api/api-database';
33
import { BasePage } from './base-page';
44
import { AddRedisDatabase } from './components/myRedisDatabase/add-redis-database';
5+
import { InsightsPanel } from './components/insights-panel';
6+
import { CompatibilityPromotion } from './components/compatibility-promotion';
57

68
const databaseAPIRequests = new DatabaseAPIRequests();
79

810
export class MyRedisDatabasePage extends BasePage {
911
AddRedisDatabase = new AddRedisDatabase();
12+
InsightsPanel = new InsightsPanel();
13+
CompatibilityPromotion = new CompatibilityPromotion();
1014

1115
//-------------------------------------------------------------------------------------------
1216
//DECLARATION OF SELECTORS

tests/e2e/pageObjects/welcome-page.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { Selector } from 'testcafe';
22
import { BasePage } from './base-page';
3+
import { CompatibilityPromotion } from './components/compatibility-promotion';
4+
import { InsightsPanel } from './components/insights-panel';
35

46
export class WelcomePage extends BasePage {
7+
CompatibilityPromotion = new CompatibilityPromotion();
8+
InsightsPanel = new InsightsPanel();
9+
510
// Buttons
611
tryRedisCloudBtn = Selector('[data-testid=promo-btn]');
712
addDbManuallyBtn = Selector('[data-testid=add-db-manually-btn]');

tests/e2e/tests/web/regression/insights/open-insights-panel.e2e.ts

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { BrowserPage, MyRedisDatabasePage, WorkbenchPage } from '../../../../pageObjects';
2-
import { ExploreTabs, rte } from '../../../../helpers/constants';
1+
import { BrowserPage, MyRedisDatabasePage, WelcomePage, WorkbenchPage } from '../../../../pageObjects';
2+
import { Compatibility, ExploreTabs, rte } from '../../../../helpers/constants';
33
import { DatabaseHelper } from '../../../../helpers/database';
44
import {
55
commonUrl,
@@ -11,6 +11,7 @@ import { DatabaseAPIRequests } from '../../../../helpers/api/api-database';
1111
const browserPage = new BrowserPage();
1212
const workbenchPage = new WorkbenchPage();
1313
const myRedisDatabasePage = new MyRedisDatabasePage();
14+
const welcomePage = new WelcomePage();
1415

1516
const databaseHelper = new DatabaseHelper();
1617
const databaseAPIRequests = new DatabaseAPIRequests();
@@ -69,3 +70,31 @@ test
6970
await t.expect(await browserPage.InsightsPanel.existsCompatibilityPopover.textContent).contains('time series', 'popover is not displayed');
7071
await t.expect(tab.preselectArea.textContent).contains('REDIS FOR TIME SERIES', 'the tutorial is incorrect');
7172
});
73+
74+
test
75+
.before(async t => {
76+
await databaseAPIRequests.deleteAllDatabasesApi();
77+
await databaseHelper.acceptLicenseTermsAndAddDatabaseApi(ossStandaloneConfig);
78+
})
79+
.after(async() => {
80+
await databaseAPIRequests.deleteAllDatabasesApi();
81+
})('Verify that insights panel can be opened from Welcome and Overview pages', async t => {
82+
const welcomeTutorial = 'JSON';
83+
const myRedisTutorial = 'Time series';
84+
85+
await t.click(browserPage.NavigationPanel.myRedisDBButton);
86+
await myRedisDatabasePage.CompatibilityPromotion.clickOnLinkByName(Compatibility.TimeSeries);
87+
await t.expect(await myRedisDatabasePage.InsightsPanel.getActiveTabName()).eql(ExploreTabs.Explore);
88+
let tab = await myRedisDatabasePage.InsightsPanel.setActiveTab(ExploreTabs.Explore);
89+
await t.expect(tab.preselectArea.textContent).contains(myRedisTutorial, 'the tutorial is incorrect');
90+
await t.click(tab.nextPageButton);
91+
await tab.runBlockCode('Create time series for each shop');
92+
await t.expect(tab.openDatabasePopover.exists).ok('Open a database popover is not displayed');
93+
await myRedisDatabasePage.InsightsPanel.togglePanel(false);
94+
await myRedisDatabasePage.deleteAllDatabases();
95+
96+
await welcomePage.CompatibilityPromotion.clickOnLinkByName(Compatibility.Json);
97+
await t.expect(await welcomePage.InsightsPanel.getActiveTabName()).eql(ExploreTabs.Explore);
98+
tab = await welcomePage.InsightsPanel.setActiveTab(ExploreTabs.Explore);
99+
await t.expect(tab.preselectArea.textContent).contains(welcomeTutorial, 'the tutorial is incorrect');
100+
});

0 commit comments

Comments
 (0)