125 lines
6.1 KiB
TypeScript
125 lines
6.1 KiB
TypeScript
import {expect} from '@playwright/test';
|
|
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
import {openTestPage, slct} from '../../../utils';
|
|
import {ChartKitQa, SectionDatasetQA, WizardPageQa} from '../../../../src/shared';
|
|
import WizardPage from '../../../page-objects/wizard/WizardPage';
|
|
import {PlaceholderName} from '../../../page-objects/wizard/SectionVisualization';
|
|
|
|
datalensTest.describe('Wizard', () => {
|
|
datalensTest.describe('Fields', () => {
|
|
datalensTest.beforeEach(async ({page, config}) => {
|
|
await openTestPage(page, config.wizard.urls.WizardBasicDataset);
|
|
});
|
|
|
|
datalensTest('The parameterized field should affect the chart', async ({page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
const datasetFields = page.locator(slct(SectionDatasetQA.DatasetFields));
|
|
const chartContainer = page.locator(slct(WizardPageQa.SectionPreview));
|
|
const previewLoader = chartContainer.locator(slct(ChartKitQa.Loader));
|
|
const parameterName = 'local_parameter';
|
|
const parameterValue = 'Furniture';
|
|
|
|
// Create parameter
|
|
await wizardPage.parameterEditor.openCreateParameter();
|
|
await wizardPage.parameterEditor.setName(parameterName);
|
|
await wizardPage.parameterEditor.setDefaultValue(parameterValue);
|
|
await wizardPage.parameterEditor.apply();
|
|
|
|
const newFieldLocator = datasetFields.locator(slct(parameterName), {
|
|
hasText: parameterName,
|
|
});
|
|
await expect(newFieldLocator).toBeVisible();
|
|
|
|
// Create parameterized field
|
|
const parameterizedFieldName = 'parameterized';
|
|
const formula = `CASE [Category] when [${parameterName}] then 'parameter_title' else [Category] END`;
|
|
await wizardPage.createNewFieldWithFormula(parameterizedFieldName, formula);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'Category');
|
|
await expect(previewLoader).not.toBeVisible();
|
|
|
|
const initialXAxisValues = 'Furniture\nOffice Supplies\nTechnology';
|
|
await expect(chartContainer).toHaveText(initialXAxisValues, {useInnerText: true});
|
|
|
|
await wizardPage.sectionVisualization.removeFieldByClick(PlaceholderName.X, 'Category');
|
|
await wizardPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.X,
|
|
parameterizedFieldName,
|
|
);
|
|
await expect(previewLoader).not.toBeVisible();
|
|
const newXAxisValues = 'Office Supplies\nparameter_title\nTechnology';
|
|
await expect(chartContainer).toHaveText(newXAxisValues, {useInnerText: true});
|
|
});
|
|
|
|
datalensTest(
|
|
'Renaming should not affect the operation of the parameter',
|
|
async ({page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
const datasetFields = page.locator(slct(SectionDatasetQA.DatasetFields));
|
|
const chartContainer = page.locator(slct(WizardPageQa.SectionPreview));
|
|
const previewLoader = chartContainer.locator(slct(ChartKitQa.Loader));
|
|
const chart = chartContainer.locator('.chartkit-graph,.gcharts-chart');
|
|
const noData = chartContainer.locator(slct('ERR.CK.NO_DATA'));
|
|
|
|
// Create parameter (value = 1)
|
|
const parameterName = 'run';
|
|
await wizardPage.parameterEditor.openCreateParameter();
|
|
await wizardPage.parameterEditor.setName(parameterName);
|
|
await wizardPage.parameterEditor.setDefaultValue('1');
|
|
await wizardPage.parameterEditor.apply();
|
|
let parameterLocator = datasetFields.locator(slct(parameterName), {
|
|
hasText: parameterName,
|
|
});
|
|
await expect(parameterLocator).toBeVisible();
|
|
|
|
// Create parameterized field ([run] = '1')
|
|
const parameterizedFieldName = 'run-chart';
|
|
await wizardPage.createNewFieldWithFormula(
|
|
parameterizedFieldName,
|
|
`[${parameterName}] = '1'`,
|
|
);
|
|
|
|
// Fill required fields for chart
|
|
await wizardPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.Filters,
|
|
parameterizedFieldName,
|
|
);
|
|
await wizardPage.filterEditor.selectRadio('true');
|
|
await wizardPage.filterEditor.apply();
|
|
await wizardPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.X,
|
|
'Category',
|
|
);
|
|
await expect(chart).toBeVisible();
|
|
|
|
// Change parameter value to 0
|
|
await parameterLocator.locator(slct(SectionDatasetQA.ItemIcon)).click();
|
|
await wizardPage.parameterEditor.setDefaultValue('0');
|
|
await wizardPage.parameterEditor.apply();
|
|
await expect(noData).toBeVisible();
|
|
|
|
// Rename parameter
|
|
const newName = 'run1';
|
|
await parameterLocator.locator(slct(SectionDatasetQA.ItemIcon)).click();
|
|
await wizardPage.parameterEditor.setName(newName);
|
|
await wizardPage.parameterEditor.apply();
|
|
parameterLocator = datasetFields.locator(slct(newName), {
|
|
hasText: newName,
|
|
});
|
|
await expect(previewLoader).toBeVisible();
|
|
await expect(previewLoader).not.toBeVisible();
|
|
await expect(noData).toBeVisible();
|
|
|
|
// Change parameter value to 1
|
|
await parameterLocator.locator(slct(SectionDatasetQA.ItemIcon)).click();
|
|
await wizardPage.parameterEditor.setDefaultValue('1');
|
|
await wizardPage.parameterEditor.apply();
|
|
await expect(previewLoader).toBeVisible();
|
|
await expect(previewLoader).not.toBeVisible();
|
|
await expect(chart).toBeVisible();
|
|
},
|
|
);
|
|
});
|
|
});
|