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

103 lines
3.7 KiB
TypeScript

import {expect} from '@playwright/test';
import {WizardVisualizationId} from '../../../page-objects/common/Visualization';
import {PlaceholderName} from '../../../page-objects/wizard/SectionVisualization';
import WizardPage from '../../../page-objects/wizard/WizardPage';
import {openTestPage, waitForCondition} from '../../../utils';
import {RobotChartsWizardUrls} from '../../../utils/constants';
import datalensTest from '../../../utils/playwright/globalTestDefinition';
datalensTest.describe('Wizard - saving chart', () => {
datalensTest(
"Changes that don't redraw the chart should be saved in the config",
async ({page}) => {
const wizardPage = new WizardPage({page});
await openTestPage(page, RobotChartsWizardUrls.WizardForGeoDataset);
await wizardPage.setVisualization(WizardVisualizationId.Geolayer);
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Geopoint,
'geopoint',
);
const apiRunPromise = wizardPage.waitForSuccessfulResponse('/api/run');
await wizardPage.saveWizardEntry(
wizardPage.getUniqueEntryName('wizard-save-without-rerender-changes'),
);
await apiRunPromise;
await wizardPage.sectionVisualization.setLayerOpacity('20');
await wizardPage.chartkit.waitUntilLoaderExists();
await wizardPage.saveExistentWizardEntry();
await wizardPage.page.reload();
await wizardPage.page.waitForNavigation();
await waitForCondition(async () => {
const layerInput = await wizardPage.page.$(
'.visualization-layers-control__range input',
);
const value = await layerInput?.inputValue();
return value === '20';
}).catch(async () => {
await wizardPage.deleteEntry();
throw new Error('Chart changes were not saved');
});
await wizardPage.deleteEntry();
},
);
datalensTest(
'Renaming a field in the Color section activates the save button',
async ({page}) => {
const wizardPage = new WizardPage({page});
await openTestPage(page, RobotChartsWizardUrls.WizardForDatasetSampleCh);
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'Category');
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'Sales');
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Colors, 'Region');
const apiRunPromise = wizardPage.waitForSuccessfulResponse('/api/run');
await wizardPage.saveWizardEntry(
wizardPage.getUniqueEntryName('save-color-changes-e2e-test'),
);
await wizardPage.chartkit.waitForSuccessfulRender();
await apiRunPromise;
await wizardPage.chartkit.waitUntilLoaderExists();
const saveButton = wizardPage.page.locator('.action-panel-save-button__save-btn');
await expect(saveButton).toBeVisible();
await expect(saveButton, 'The save button is active').toBeDisabled();
await wizardPage.visualizationItemDialog.open(PlaceholderName.Colors, 'Region');
await wizardPage.visualizationItemDialog.changeTitle('Changed Region');
await wizardPage.visualizationItemDialog.clickOnApplyButton();
await expect(saveButton).toBeVisible();
await expect(saveButton, 'The save button is not active').not.toBeDisabled();
await wizardPage.saveExistentWizardEntry();
await wizardPage.deleteEntry();
},
);
});