113 lines
4.3 KiB
TypeScript
113 lines
4.3 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, waitForCondition} from '../../../utils';
|
|
import {RobotChartsWizardUrls} from '../../../utils/constants';
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
|
|
const getAllPlaceholderItems = async (wizardPage: WizardPage) => {
|
|
return await Promise.all([
|
|
...(await wizardPage.sectionVisualization.getPlaceholderItems(PlaceholderName.X)),
|
|
...(await wizardPage.sectionVisualization.getPlaceholderItems(PlaceholderName.Y)),
|
|
...(await wizardPage.sectionVisualization.getPlaceholderItems(PlaceholderName.Y2)),
|
|
]);
|
|
};
|
|
|
|
datalensTest.describe('Wizard Fields', () => {
|
|
datalensTest.beforeEach(async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await openTestPage(page, RobotChartsWizardUrls.WizardForDatasetSampleCh);
|
|
|
|
await wizardPage.setVisualization(WizardVisualizationId.Line);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'Category');
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'Profit');
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y2, 'Sales');
|
|
});
|
|
|
|
datalensTest(
|
|
"Changing Y's title should not affect other fields",
|
|
async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
const expectedXPlaceholderFieldName = 'Category';
|
|
const expectedYPlaceholderFieldName = 'Profit-Changed';
|
|
const expectedY2PlaceholderFieldName = 'Sales';
|
|
|
|
const expectedResult = [
|
|
expectedXPlaceholderFieldName,
|
|
expectedYPlaceholderFieldName,
|
|
expectedY2PlaceholderFieldName,
|
|
].join();
|
|
|
|
let actualResult = '';
|
|
|
|
await wizardPage.visualizationItemDialog.open(PlaceholderName.Y, 'Profit');
|
|
|
|
await wizardPage.visualizationItemDialog.changeTitle('Profit-Changed');
|
|
|
|
await wizardPage.visualizationItemDialog.clickOnApplyButton();
|
|
|
|
await waitForCondition(async () => {
|
|
const placeholderItems = await getAllPlaceholderItems(wizardPage);
|
|
|
|
const fieldNames = await Promise.all(placeholderItems.map((el) => el.innerText()));
|
|
|
|
actualResult = fieldNames.join();
|
|
|
|
return actualResult === expectedResult;
|
|
}).catch((error) => {
|
|
console.error(error);
|
|
|
|
throw new Error(
|
|
`expectedResult: ${expectedResult} !== actualResult: ${actualResult}`,
|
|
);
|
|
});
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
'Changing the title of Y2, should not affect other fields',
|
|
async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
const expectedXPlaceholderFieldName = 'Category';
|
|
const expectedYPlaceholderFieldName = 'Profit';
|
|
const expectedY2PlaceholderFieldName = 'Sales-Changed';
|
|
|
|
const expectedResult = [
|
|
expectedXPlaceholderFieldName,
|
|
expectedYPlaceholderFieldName,
|
|
expectedY2PlaceholderFieldName,
|
|
].join();
|
|
|
|
let actualResult = '';
|
|
|
|
await wizardPage.visualizationItemDialog.open(PlaceholderName.Y2, 'Sales');
|
|
|
|
await wizardPage.visualizationItemDialog.changeTitle('Sales-Changed');
|
|
|
|
await wizardPage.visualizationItemDialog.clickOnApplyButton();
|
|
|
|
await waitForCondition(async () => {
|
|
const placeholderItems = await getAllPlaceholderItems(wizardPage);
|
|
|
|
const fieldNames = await Promise.all(placeholderItems.map((el) => el.innerText()));
|
|
|
|
actualResult = fieldNames.join();
|
|
|
|
return actualResult === expectedResult;
|
|
}).catch((error) => {
|
|
console.error(error);
|
|
|
|
throw new Error(
|
|
`expectedResult: ${expectedResult} !== actualResult: ${actualResult}`,
|
|
);
|
|
});
|
|
},
|
|
);
|
|
});
|