60 lines
2.5 KiB
TypeScript
60 lines
2.5 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
|
|
import DashboardPage from '../../../page-objects/dashboard/DashboardPage';
|
|
import {openTestPage, slct} from '../../../utils';
|
|
import {RobotChartsDashboardUrls} from '../../../utils/constants';
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
|
|
const SELECTORS = {
|
|
SELECTOR_KEY: 'chartkit-control-select',
|
|
SELECTOR_TITLE: 'chartkit-control-title',
|
|
SELECTOR_ITEMS: '.yc-select-items > .yc-select-item-wrap',
|
|
DASH_CHART_KEY: 'dashkit-grid-item',
|
|
};
|
|
const PARAMS = {
|
|
TAB_1_TITLE: 'Tab 1',
|
|
TAB_3_TITLE: 'Tab 3',
|
|
SELECTOR_TITLE: 'Step',
|
|
};
|
|
|
|
datalensTest.describe(`Dashboards - Switch tabs`, () => {
|
|
datalensTest(
|
|
'Dashboard tabs are successfully switched by clicking on the tab and using the browser\'s "Back"/"Forward" buttons',
|
|
async ({page}: {page: Page}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
|
|
await openTestPage(page, RobotChartsDashboardUrls.DashboardWithTabsAndSelectors);
|
|
|
|
// waiting for the first tab to load correctly
|
|
await dashboardPage.page.waitForSelector(slct(SELECTORS.SELECTOR_KEY));
|
|
await dashboardPage.page.waitForSelector(slct(SELECTORS.DASH_CHART_KEY));
|
|
|
|
// switch to the third tab
|
|
await dashboardPage.changeTab({tabName: PARAMS.TAB_3_TITLE});
|
|
|
|
// waiting for the third tab to load correctly
|
|
await dashboardPage.page.waitForSelector(
|
|
slct(SELECTORS.SELECTOR_TITLE, PARAMS.SELECTOR_TITLE),
|
|
);
|
|
|
|
// back to the first tab
|
|
await dashboardPage.changeTab({tabName: PARAMS.TAB_1_TITLE});
|
|
|
|
// waiting for the first tab to load correctly
|
|
await dashboardPage.page.waitForSelector(slct(SELECTORS.SELECTOR_KEY));
|
|
await dashboardPage.page.waitForSelector(slct(SELECTORS.DASH_CHART_KEY));
|
|
|
|
// switch back using the browser's native "Back" button and wait for the third tab to load again
|
|
await page.goBack();
|
|
await dashboardPage.page.waitForSelector(
|
|
slct(SELECTORS.SELECTOR_TITLE, PARAMS.SELECTOR_TITLE),
|
|
);
|
|
|
|
// switch forward using the browser's native "Forward" button and wait for the first tab to load again
|
|
await page.goForward();
|
|
await dashboardPage.page.waitForSelector(slct(SELECTORS.SELECTOR_KEY));
|
|
await dashboardPage.page.waitForSelector(slct(SELECTORS.DASH_CHART_KEY));
|
|
},
|
|
);
|
|
});
|