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