2026-06-24 20:31:05 +05:00

51 lines
2.0 KiB
TypeScript

import {Page} from '@playwright/test';
import DashboardPage from '../../../page-objects/dashboard/DashboardPage';
import {getUniqueTimestamp, openTestPage, slct} from '../../../utils';
import {RobotChartsDashboardUrls} from '../../../utils/constants';
import datalensTest from '../../../utils/playwright/globalTestDefinition';
import {DatalensTabsQa} from '../../../../src/shared/constants/qa';
const SELECTORS = {
DASH_CHART_KEY: 'dashkit-grid-item',
};
datalensTest.describe(`Dashboards - tabs`, () => {
datalensTest.beforeEach(async ({page}: {page: Page}) => {
const dashName = `e2e-test-dash-with-description-no-tabs-copy-${getUniqueTimestamp()}`;
const dashboardPage = new DashboardPage({page});
await openTestPage(page, RobotChartsDashboardUrls.DashboardWithDescriptionAndNoTabs);
await dashboardPage.copyDashboard(dashName);
});
datalensTest(
'After adding a new tab to the dashboard without tabs, the cancellation of editing the dashboard is successful',
async ({page}: {page: Page}) => {
const dashboardPage = new DashboardPage({page});
await dashboardPage.enterEditMode();
// Adding another tab with the default name (Tab 2)
await dashboardPage.addTab();
// Waiting for the first tab to load correctly
await dashboardPage.page.waitForSelector(slct(SELECTORS.DASH_CHART_KEY));
// switch to the second tab
await dashboardPage.changeTab({
index: 1,
});
// Cancel editing the dashboard without saving
await dashboardPage.exitEditMode();
// Check that the added tab is not left on the dashboard
// if there is only one tab left, then the tab elements are not displayed.
const tabsCount = await page.locator(slct(DatalensTabsQa.Item)).count();
await expect(tabsCount).toEqual(0);
await dashboardPage.deleteDashFromViewMode();
},
);
});