104 lines
3.9 KiB
TypeScript
104 lines
3.9 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
|
|
import {SectionDatasetQA, WizardVisualizationId} from '../../../../src/shared';
|
|
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';
|
|
|
|
const hierarchyName = 'City > Rank';
|
|
const hierarchyFields = ['Rank', 'City'];
|
|
|
|
datalensTest.describe('Wizard Hierarchy', () => {
|
|
datalensTest.beforeEach(async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await openTestPage(page, RobotChartsWizardUrls.WizardCitiesDataset);
|
|
|
|
await wizardPage.openHierarchyEditor();
|
|
|
|
await wizardPage.hierarchyEditor.setName(hierarchyName);
|
|
|
|
await wizardPage.hierarchyEditor.selectFields(hierarchyFields);
|
|
|
|
await wizardPage.hierarchyEditor.clickSave();
|
|
});
|
|
|
|
datalensTest(
|
|
'You can open editing by clicking on the hierarchy icon in the list of hierarchies',
|
|
async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await page.click(`${slct(SectionDatasetQA.DatasetContainer)} .hierarchy-icon`);
|
|
|
|
await waitForCondition(() => {
|
|
return wizardPage.hierarchyEditor.isVisible();
|
|
});
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
'You can open editing by clicking on the hierarchy icon in the visualization',
|
|
async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await wizardPage.setVisualization(WizardVisualizationId.FlatTable);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.FlatTableColumns,
|
|
hierarchyName,
|
|
);
|
|
|
|
await page.click(`${slct(PlaceholderName.FlatTableColumns)} .hierarchy-icon`);
|
|
|
|
await waitForCondition(() => {
|
|
return wizardPage.hierarchyEditor.isVisible();
|
|
});
|
|
},
|
|
);
|
|
|
|
datalensTest('Editing fields and hierarchy name', async ({page}: {page: Page}) => {
|
|
const newHierarchyName = 'New hierarchy name';
|
|
const newHierarchyFields = ['Latitude1', 'Longitude1'];
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
const openHierarchyEditor = async () => {
|
|
await page.click(`${slct(SectionDatasetQA.DatasetContainer)} .hierarchy-icon`);
|
|
};
|
|
|
|
await openHierarchyEditor();
|
|
|
|
await waitForCondition(async () => {
|
|
const name = await wizardPage.hierarchyEditor.getName();
|
|
const selectedItems = await wizardPage.hierarchyEditor.getSelectedItems();
|
|
return name === hierarchyName && selectedItems.join() === hierarchyFields.join();
|
|
});
|
|
|
|
await wizardPage.hierarchyEditor.setName(newHierarchyName);
|
|
await wizardPage.hierarchyEditor.clearAllSelectedFields();
|
|
await wizardPage.hierarchyEditor.selectFields(newHierarchyFields);
|
|
await wizardPage.hierarchyEditor.clickSave();
|
|
|
|
await openHierarchyEditor();
|
|
|
|
await waitForCondition(async () => {
|
|
const name = await wizardPage.hierarchyEditor.getName();
|
|
const selectedItems = await wizardPage.hierarchyEditor.getSelectedItems();
|
|
return name === newHierarchyName && selectedItems.join() === newHierarchyFields.join();
|
|
});
|
|
});
|
|
|
|
datalensTest('Cannot edit inline hierarchy', async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, hierarchyName);
|
|
|
|
await wizardPage.page.hover(slct(hierarchyName));
|
|
|
|
const moreButton = await wizardPage.page.$('.more-icon');
|
|
|
|
expect(moreButton).toEqual(null);
|
|
});
|
|
});
|