67 lines
2.6 KiB
TypeScript
67 lines
2.6 KiB
TypeScript
import {Page} 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, slct, waitForCondition} from '../../../utils';
|
|
import {RobotChartsWizardUrls} from '../../../utils/constants';
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
|
|
datalensTest.describe('Wizard Hierarchy', () => {
|
|
datalensTest.beforeEach(async ({page}: {page: Page}) => {
|
|
const hierarchyName = 'Hierarchy to remove';
|
|
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await openTestPage(page, RobotChartsWizardUrls.WizardCitiesDataset);
|
|
|
|
await wizardPage.setVisualization(WizardVisualizationId.FlatTable);
|
|
|
|
await wizardPage.openHierarchyEditor();
|
|
|
|
await wizardPage.hierarchyEditor.setName(hierarchyName);
|
|
|
|
await wizardPage.hierarchyEditor.selectFields(['Rank', 'City']);
|
|
|
|
await wizardPage.hierarchyEditor.clickSave();
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.FlatTableColumns,
|
|
hierarchyName,
|
|
);
|
|
});
|
|
|
|
datalensTest(
|
|
'The user can delete the hierarchy through the context menu action, when deleted, the hierarchy will also disappear from the visualization',
|
|
async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await waitForCondition(async () => {
|
|
const hierarchies = await wizardPage.getHierarchies();
|
|
const hierarchiesInPlaceholder =
|
|
await wizardPage.sectionVisualization.getPlaceholderItems(
|
|
PlaceholderName.FlatTableColumns,
|
|
);
|
|
|
|
return hierarchies.length === 1 && hierarchiesInPlaceholder.length === 1;
|
|
});
|
|
|
|
const [hierarchy] = await wizardPage.getHierarchies();
|
|
|
|
await hierarchy.hover();
|
|
await hierarchy.$('.wizard-dataset-item__item-more-icon').then((item) => item!.click());
|
|
await page.click(slct('dropdown-field-menu-hierarchy-remove'));
|
|
|
|
await waitForCondition(async () => {
|
|
const hierarchies = await wizardPage.getHierarchies();
|
|
const hierarchiesInPlaceholder =
|
|
await wizardPage.sectionVisualization.getPlaceholderItems(
|
|
PlaceholderName.FlatTableColumns,
|
|
);
|
|
|
|
return hierarchies.length === 0 && hierarchiesInPlaceholder.length === 0;
|
|
});
|
|
},
|
|
);
|
|
});
|