diff --git a/tests/e2e/helpers/constants.ts b/tests/e2e/helpers/constants.ts index 2bb4461d82..af0a339be2 100644 --- a/tests/e2e/helpers/constants.ts +++ b/tests/e2e/helpers/constants.ts @@ -46,6 +46,7 @@ export enum RecommendationIds { useSmallerKeys = 'useSmallerKeys', avoidLogicalDatabases = 'avoidLogicalDatabases', searchJson = 'searchJSON', + rdi = 'tryRDI' } export enum LibrariesSections { diff --git a/tests/e2e/pageObjects/components/recommendations-tab.ts b/tests/e2e/pageObjects/components/recommendations-tab.ts index 331becefc3..bafbfe7c56 100644 --- a/tests/e2e/pageObjects/components/recommendations-tab.ts +++ b/tests/e2e/pageObjects/components/recommendations-tab.ts @@ -77,4 +77,13 @@ export class RecommendationsTab { const tutorialBtn = Selector(`[data-testid=${recommendationName}-to-tutorial-btn]`); await t.click(tutorialBtn); } + + /** + * click on navigate button in the recommendation + * @param recommendationName Name of recommendation + */ + async clickOnNavigationButton(recommendationName: RecommendationIds): Promise { + const button = Selector(`[data-testid^=internal-link-${recommendationName}]`); + await t.click(button); + } } diff --git a/tests/e2e/tests/web/critical-path/rdi/rdi-recommendation.e2e.ts b/tests/e2e/tests/web/critical-path/rdi/rdi-recommendation.e2e.ts new file mode 100644 index 0000000000..2ba74f9fea --- /dev/null +++ b/tests/e2e/tests/web/critical-path/rdi/rdi-recommendation.e2e.ts @@ -0,0 +1,37 @@ +import { t } from 'testcafe'; +import { commonUrl, ossStandaloneRedisGears } from '../../../../helpers/conf'; +import { DatabaseHelper } from '../../../../helpers'; +import { BrowserPage, MyRedisDatabasePage } from '../../../../pageObjects'; +import { ExploreTabs, RecommendationIds, RedisOverviewPage } from '../../../../helpers/constants'; +import { DatabaseAPIRequests } from '../../../../helpers/api/api-database'; +import { RdiInstancesListPage } from '../../../../pageObjects/rdi-instances-list-page'; + +const databaseHelper = new DatabaseHelper(); +const myRedisDatabasePage = new MyRedisDatabasePage(); +const databaseAPIRequests = new DatabaseAPIRequests(); +const browserPage = new BrowserPage(); +const rdiInstancesListPage = new RdiInstancesListPage(); + +const rdiRecommendation = RecommendationIds.rdi; + +//skip the tests until rdi integration is added +fixture.skip `Rdi recommendation` + .meta({ type: 'critical_path', feature: 'rdi' }) + .page(commonUrl) + .beforeEach(async() => { + await databaseHelper.acceptLicenseTerms(); + await myRedisDatabasePage.setActivePage(RedisOverviewPage.DataBase); + await databaseHelper.acceptLicenseTermsAndAddDatabaseApi(ossStandaloneRedisGears); + }) + .afterEach(async() => { + await databaseAPIRequests.deleteAllDatabasesApi(); + }); +// it doesn't work until recommendation.json is not updated +test('Verify that rdi recommendation is displayed for oss cluster', async() => { + await browserPage.InsightsPanel.togglePanel(true); + const tab = await browserPage.InsightsPanel.setActiveTab(ExploreTabs.Tips); + await t.expect(tab.getRecommendationByName(rdiRecommendation).exists).ok('Redis Version recommendation not displayed'); + await tab.clickOnNavigationButton(rdiRecommendation); + + await t.expect(rdiInstancesListPage.rdiInstanceButton.exists).ok('Navigation for recommendation is not correct'); +});