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

118 lines
4.5 KiB
TypeScript

import {expect} from '@playwright/test';
import {CommonUrls} from '../../../page-objects/constants/common-urls';
import {WizardVisualizationId} from '../../../../src/shared';
import {PlaceholderName} from '../../../page-objects/wizard/SectionVisualization';
import WizardPage from '../../../page-objects/wizard/WizardPage';
import {RobotChartsWizardUrls} from '../../../utils/constants';
import datalensTest from '../../../utils/playwright/globalTestDefinition';
import {openTestPage} from '../../../utils';
datalensTest.describe('Wizard - Column Settings dialog', () => {
datalensTest.beforeEach(async ({page}) => {
const wizardPage = new WizardPage({page});
await openTestPage(page, RobotChartsWizardUrls.WizardForDatasetSampleCh);
await wizardPage.setVisualization(WizardVisualizationId.FlatTable);
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.FlatTableColumns,
'DATE',
);
});
datalensTest('You can set the column width', async ({page}) => {
const wizardPage = new WizardPage({page});
await wizardPage.columnSettings.open();
let value = await wizardPage.columnSettings.getRadioButtonsValue('DATE');
let inputValue = await wizardPage.columnSettings.getInputValue('DATE');
expect(value).toEqual('auto');
expect(inputValue).toEqual('—');
await wizardPage.columnSettings.switchUnit('DATE', 'pixel');
await wizardPage.columnSettings.fillWidthValueInput('DATE', '120');
await wizardPage.columnSettings.apply();
await wizardPage.columnSettings.open();
value = await wizardPage.columnSettings.getRadioButtonsValue('DATE');
inputValue = await wizardPage.columnSettings.getInputValue('DATE');
expect(value).toEqual('pixel');
expect(inputValue).toEqual('120');
});
datalensTest(
'When resetting the settings in the dialog, resets the value to auto',
async ({page}) => {
const wizardPage = new WizardPage({page});
await wizardPage.columnSettings.open();
await wizardPage.columnSettings.switchUnit('DATE', 'percent');
await wizardPage.columnSettings.fillWidthValueInput('DATE', '12');
let value = await wizardPage.columnSettings.getRadioButtonsValue('DATE');
let inputValue = await wizardPage.columnSettings.getInputValue('DATE');
expect(value).toEqual('percent');
expect(inputValue).toEqual('12');
await wizardPage.columnSettings.reset();
value = await wizardPage.columnSettings.getRadioButtonsValue('DATE');
inputValue = await wizardPage.columnSettings.getInputValue('DATE');
expect(value).toEqual('auto');
expect(inputValue).toEqual('—');
},
);
datalensTest(
'When setting the column width for the hierarchy, the width of the table cells changes',
async ({page}) => {
const wizardPage = new WizardPage({page});
const hierarchyFieldName = 'Hierarchy column';
await wizardPage.openHierarchyEditor();
await wizardPage.hierarchyEditor.setName(hierarchyFieldName);
await wizardPage.hierarchyEditor.selectFields(['Category', 'Sub-Category']);
await wizardPage.hierarchyEditor.clickSave();
let apiRunRequest = wizardPage.page.waitForRequest(
(request) => new URL(request.url()).pathname === CommonUrls.ApiRun,
);
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.FlatTableColumns,
hierarchyFieldName,
);
await (await apiRunRequest).response();
const table = wizardPage.chartkit.getTableLocator();
const hierarchyColumn = table.locator('th', {hasText: 'Category'}).first();
const prev = await hierarchyColumn.boundingBox();
apiRunRequest = wizardPage.page.waitForRequest(
(request) => new URL(request.url()).pathname === CommonUrls.ApiRun,
);
await wizardPage.columnSettings.open();
await wizardPage.columnSettings.switchUnit(hierarchyFieldName, 'pixel');
await wizardPage.columnSettings.fillWidthValueInput(hierarchyFieldName, '120');
await wizardPage.columnSettings.apply();
await (await apiRunRequest).response();
const current = await hierarchyColumn.boundingBox();
await expect(current?.width).not.toEqual(prev?.width);
},
);
});