2026-06-24 21:10:34 +05:00

97 lines
3.7 KiB
TypeScript

import {expect} from '@playwright/test';
import datalensTest from '../../../utils/playwright/globalTestDefinition';
import {openTestPage, slct, waitForCondition} from '../../../utils';
import {WizardPageQa, WizardVisualizationId} from '../../../../src/shared';
import WizardPage from '../../../page-objects/wizard/WizardPage';
import {PlaceholderName} from '../../../page-objects/wizard/SectionVisualization';
import {COMMON_CHARTKIT_SELECTORS} from '../../../page-objects/constants/chartkit';
datalensTest.describe('Wizard', () => {
datalensTest.describe('Edit history', () => {
datalensTest.beforeEach(async ({page, config}) => {
const wizardPage = new WizardPage({page});
await openTestPage(page, config.wizard.urls.WizardBasicDataset);
await wizardPage.setVisualization(WizardVisualizationId.Pie);
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Colors,
'Category',
);
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Measures,
'Sales',
);
});
datalensTest('Make some changes, then undo them', async ({page}) => {
const wizardPage = new WizardPage({page});
const chartContainer = page.locator(slct(WizardPageQa.SectionPreview));
const chart = chartContainer.locator('.chartkit-graph,.gcharts-chart');
await expect(chart).toBeVisible();
await waitForCondition(async () => {
const elems = await page.$$(`${COMMON_CHARTKIT_SELECTORS.chartLegendItem}`);
return elems.length === 3;
});
await wizardPage.sectionVisualization.removeFieldByClick(
PlaceholderName.Colors,
'Category',
);
await waitForCondition(async () => {
const elems = await page.$$(`${COMMON_CHARTKIT_SELECTORS.chartLegendItem}`);
return elems.length === 1;
});
await wizardPage.clickUndo();
await waitForCondition(async () => {
const elems = await page.$$(`${COMMON_CHARTKIT_SELECTORS.chartLegendItem}`);
return elems.length === 3;
});
});
datalensTest('Make some changes, then undo them, then redo them', async ({page}) => {
const wizardPage = new WizardPage({page});
const chartContainer = page.locator(slct(WizardPageQa.SectionPreview));
const chart = chartContainer.locator('.chartkit-graph,.gcharts-chart');
await expect(chart).toBeVisible();
await waitForCondition(async () => {
const elems = await page.$$(`${COMMON_CHARTKIT_SELECTORS.chartLegendItem}`);
return elems.length === 3;
});
await wizardPage.sectionVisualization.removeFieldByClick(
PlaceholderName.Colors,
'Category',
);
await waitForCondition(async () => {
const elems = await page.$$(`${COMMON_CHARTKIT_SELECTORS.chartLegendItem}`);
return elems.length === 1;
});
await wizardPage.clickUndo();
await waitForCondition(async () => {
const elems = await page.$$(`${COMMON_CHARTKIT_SELECTORS.chartLegendItem}`);
return elems.length === 3;
});
await wizardPage.clickRedo();
await waitForCondition(async () => {
const elems = await page.$$(`${COMMON_CHARTKIT_SELECTORS.chartLegendItem}`);
return elems.length === 1;
});
});
});
});