datalens-ui/tests/suites/dash/tabs/tabsChange.test.ts
2026-06-24 20:31:05 +05:00

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));
},
);
});