51 lines
2.0 KiB
TypeScript
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();
|
|
},
|
|
);
|
|
});
|