88 lines
3.7 KiB
TypeScript
88 lines
3.7 KiB
TypeScript
import {expect} from '@playwright/test';
|
|
|
|
import {openTestPage, slct} from '../../../../utils';
|
|
import datalensTest from '../../../../utils/playwright/globalTestDefinition';
|
|
import {
|
|
ChartKitQa,
|
|
ChartKitTableQa,
|
|
WizardPageQa,
|
|
WizardVisualizationId,
|
|
} from '../../../../../src/shared';
|
|
import WizardPage from '../../../../page-objects/wizard/WizardPage';
|
|
import {PlaceholderName} from '../../../../page-objects/wizard/SectionVisualization';
|
|
|
|
const chartNamePattern = 'e2e-wizard-column-setting';
|
|
|
|
datalensTest.describe('Wizard', () => {
|
|
datalensTest.describe('Flat table', () => {
|
|
datalensTest.beforeEach(async ({page, config}) => {
|
|
await openTestPage(page, config.wizard.urls.WizardBasicDataset);
|
|
|
|
const wizardPage = new WizardPage({page});
|
|
await wizardPage.setVisualization(WizardVisualizationId.FlatTable);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Filters, 'City');
|
|
await wizardPage.filterEditor.selectValues(['Aurora']);
|
|
await wizardPage.filterEditor.apply();
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.FlatTableColumns,
|
|
'Category',
|
|
);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.FlatTableColumns,
|
|
'City',
|
|
);
|
|
});
|
|
|
|
datalensTest.afterEach(async ({page}) => {
|
|
await page.reload();
|
|
const pageUrl = page.url();
|
|
|
|
if (pageUrl.includes(chartNamePattern)) {
|
|
const wizardPage = new WizardPage({page});
|
|
await wizardPage.deleteEntry();
|
|
}
|
|
});
|
|
|
|
datalensTest('Column settings - fixed width', async ({page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
const chartContainer = page.locator(slct(WizardPageQa.SectionPreview));
|
|
const previewLoader = chartContainer.locator(slct(ChartKitQa.Loader));
|
|
const table = wizardPage.chartkit.getTableLocator();
|
|
const tableCellContent = table
|
|
.locator('.chartkit-table__content')
|
|
.or(page.locator(slct(ChartKitTableQa.CellContent)));
|
|
|
|
const columnWidth = 50;
|
|
await wizardPage.columnSettings.open();
|
|
await wizardPage.columnSettings.switchUnit('Category', 'pixel');
|
|
await wizardPage.columnSettings.fillWidthValueInput('Category', String(columnWidth));
|
|
|
|
const percentWidth = 100;
|
|
await wizardPage.columnSettings.switchUnit('City', 'percent');
|
|
await wizardPage.columnSettings.fillWidthValueInput('City', String(percentWidth));
|
|
|
|
await wizardPage.columnSettings.apply();
|
|
|
|
await expect(previewLoader).not.toBeVisible();
|
|
const tableWidth = (await table.boundingBox())?.width;
|
|
|
|
const {width: fixedPixelWidth} = (await tableCellContent.nth(0).boundingBox()) || {};
|
|
const {width: fixedPercentWidth} = (await tableCellContent.nth(1).boundingBox()) || {};
|
|
expect(fixedPixelWidth).toEqual(columnWidth);
|
|
expect(fixedPercentWidth).toEqual(tableWidth);
|
|
|
|
await wizardPage.saveWizardEntry(wizardPage.getUniqueEntryName(chartNamePattern));
|
|
await page.reload();
|
|
|
|
await wizardPage.columnSettings.open();
|
|
const firstColumnWidth = await wizardPage.columnSettings.getInputValue('Category');
|
|
expect(firstColumnWidth).toEqual(String(columnWidth));
|
|
const secondColumnWidth = await wizardPage.columnSettings.getInputValue('City');
|
|
expect(secondColumnWidth).toEqual(String(percentWidth));
|
|
});
|
|
});
|
|
});
|