Skip to content

Commit

Permalink
test: Added test to open existing dashboard from UI (SNS-107393)
Browse files Browse the repository at this point in the history
  • Loading branch information
Anatoliy Ovdiy authored and volodChu committed Aug 6, 2024
1 parent 5675822 commit 89b96de
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 10 deletions.
10 changes: 10 additions & 0 deletions src/pages/analytics/analyticsNavver.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { BasePage } from '@pages/basePage';
import { Locator, Page } from '@playwright/test';
import { ElementState } from '@constants/elementState.ts';

export class AnalyticsNavver extends BasePage {
constructor(
Expand All @@ -26,4 +27,13 @@ export class AnalyticsNavver extends BasePage {
has: this.navverItemTitle.getByText(title, { exact: true }),
});
}

async waitDashboardListItemVisibilityState(title: string, state:ElementState):Promise<void> {
try {
await this.getDashboardListItemByTitle(title).waitFor({state});
}
catch(e) {
throw new Error(`Dashboard with title '${title}' not found.`)
}
}
}
4 changes: 2 additions & 2 deletions src/steps/ui/analytics/analyticsNavver.steps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,17 @@ import test, { expect, Page } from '@playwright/test';
import { BrowserSteps } from '@steps/ui/browser.steps';
import { AnalyticsNavver } from '@pages/analytics/analyticsNavver';
import { DashboardPage } from '@pages/analytics/dashboard/dashboardPage';
import { ImportDashboardPopup } from '@pages/analytics/importDashboardPopup';
import { Widget } from '@pages/analytics/widgets/widget';
import { MenuPopup } from '@pages/analytics/menuPopup';
import { NewDashboardPopup } from '@pages/analytics/newDashboardPopup';
import { ChooseDataSourcePopup } from '@pages/analytics/chooseDataSourcePopup';
import { ElementState } from '@constants/elementState.ts';

export class AnalyticsNavverSteps extends BrowserSteps {
constructor(
page: Page,
private analyticsNavver = new AnalyticsNavver(page),
private dashboardPage = new DashboardPage(page),
private importDashboardPopup = new ImportDashboardPopup(page),
private widget = new Widget(page),
private menuPopup = new MenuPopup(page),
private newDashboardPopup = new NewDashboardPopup(page),
Expand All @@ -29,6 +28,7 @@ export class AnalyticsNavverSteps extends BrowserSteps {
*/
openDashboardByTitle = async (title: string, waitWidgetsToBeLoaded: boolean = true) => {
await test.step(`Open '${title}' dashboard in navver`, async () => {
await this.analyticsNavver.waitDashboardListItemVisibilityState(title, ElementState.VISIBLE);
await this.analyticsNavver.clickDashboardByTitle(title);
await this.dashboardPage.mouseMove(-150, 0);
await this.dashboardPage.waitDashboardTitleToBe(title);
Expand Down
35 changes: 27 additions & 8 deletions tests/ui/dashboard.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,18 @@ test.describe('X-RAY-00024: Add dashboards UI actions', () => {
const dashboardName = 'dashboard-X-RAY-00024';
const widgetName = 'widget-X-RAY-00024';

test.afterEach(async ({ userContext }) => {
test.afterEach(async ({userContext}) => {
await DashboardsAPISteps.deleteDashboardsBulkByAdmin([dashboardName], userContext);
});

test('X-RAY-00024 @examples', async ({
userContext,
loginPageSteps,
analyticsNavverSteps,
headerPageSteps,
widgetSteps,
newWidgetPopupSteps,
analyticsDimensionsPopupSteps,
userContext,
loginPageSteps,
analyticsNavverSteps,
headerPageSteps,
widgetSteps,
newWidgetPopupSteps,
analyticsDimensionsPopupSteps,
}) => {
await loginPageSteps.logIn(userContext);
await headerPageSteps.openAnalyticsPage();
Expand All @@ -36,4 +37,22 @@ test.describe('X-RAY-00024: Add dashboards UI actions', () => {
await newWidgetPopupSteps.clickCreateButton();
await widgetSteps.verifyAllWidgetsLoaded();
});
});

test.describe('X-RAY-17466: Open dashboard UI actions', () => {
const dashboardName: string = 'dashboard-X-RAY-17466';
test.fail(); //Remove 'test.fail();' after specifying valid dashboard title

test('X-RAY-17466 @examples', async ({
userContext,
loginPageSteps,
analyticsNavverSteps,
headerPageSteps,
widgetSteps,
}) => {
await loginPageSteps.logIn(userContext);
await headerPageSteps.openAnalyticsPage();
await analyticsNavverSteps.openDashboardByTitle(dashboardName);
await widgetSteps.verifyAllWidgetsLoaded();
});
});

0 comments on commit 89b96de

Please sign in to comment.