156 lines
5.8 KiB
TypeScript
156 lines
5.8 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
|
|
import {WizardVisualizationId} from '../../../page-objects/common/Visualization';
|
|
import {RadioButtons} from '../../../page-objects/wizard/PlaceholderDialog';
|
|
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';
|
|
import {AxisNullsMode, PlaceholderId} from '../../../../src/shared';
|
|
|
|
datalensTest.describe('Wizard - placeholder dialog ("Empty values (null)") ', () => {
|
|
datalensTest(
|
|
'The setting has 3 options "Do not display", "Connect", "Display as 0"',
|
|
async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
const expectedValues = [
|
|
AxisNullsMode.Ignore,
|
|
AxisNullsMode.Connect,
|
|
AxisNullsMode.AsZero,
|
|
];
|
|
|
|
await openTestPage(page, RobotChartsWizardUrls.WizardForDatasetSampleCh);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'Sales');
|
|
|
|
await wizardPage.placeholderDialog.open(PlaceholderId.Y);
|
|
|
|
let values: string[];
|
|
|
|
await waitForCondition(async () => {
|
|
values = await wizardPage.placeholderDialog.getRadioButtonValues(
|
|
RadioButtons.ConnectNulls,
|
|
);
|
|
|
|
return values.join(',') === expectedValues.join(',');
|
|
}).catch(() => {
|
|
throw new Error(
|
|
`Current options: ${values.join(',')}, expected: ${expectedValues.join(',')}`,
|
|
);
|
|
});
|
|
},
|
|
);
|
|
|
|
datalensTest('The default value is "Ignore" for bar-y', async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await openTestPage(page, RobotChartsWizardUrls.WizardForDatasetSampleCh);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'Sales');
|
|
|
|
await wizardPage.placeholderDialog.open(PlaceholderId.Y);
|
|
|
|
let selectedButtonValue: string;
|
|
const expectedValue = AxisNullsMode.Ignore;
|
|
|
|
await waitForCondition(async () => {
|
|
const selectedButton = await wizardPage.placeholderDialog.getCheckRadioButton(
|
|
RadioButtons.ConnectNulls,
|
|
);
|
|
|
|
selectedButtonValue = (await selectedButton?.getAttribute('value')) || '';
|
|
|
|
return selectedButtonValue === expectedValue;
|
|
}).catch(() => {
|
|
throw new Error(
|
|
`By default, ${selectedButtonValue} was selected, and ${expectedValue} was expected`,
|
|
);
|
|
});
|
|
});
|
|
|
|
datalensTest('The default value is "Connect" for line', async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
await openTestPage(page, RobotChartsWizardUrls.WizardForDatasetSampleCh);
|
|
|
|
await wizardPage.setVisualization(WizardVisualizationId.Line);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'Sales');
|
|
|
|
await wizardPage.placeholderDialog.open(PlaceholderId.Y);
|
|
|
|
let selectedButtonValue: string;
|
|
const expectedValue = AxisNullsMode.Connect;
|
|
|
|
await waitForCondition(async () => {
|
|
const selectedButton = await wizardPage.placeholderDialog.getCheckRadioButton(
|
|
RadioButtons.ConnectNulls,
|
|
);
|
|
|
|
selectedButtonValue = (await selectedButton?.getAttribute('value')) || '';
|
|
|
|
return selectedButtonValue === expectedValue;
|
|
}).catch(() => {
|
|
throw new Error(
|
|
`By default, ${selectedButtonValue} was selected, and ${expectedValue} was expected`,
|
|
);
|
|
});
|
|
});
|
|
|
|
datalensTest(
|
|
'For a chart with areas, 3 settings are available and "Display as 0" is selected',
|
|
async ({page}: {page: Page}) => {
|
|
const wizardPage = new WizardPage({page});
|
|
|
|
const expectedValues = [
|
|
AxisNullsMode.Ignore,
|
|
AxisNullsMode.AsZero,
|
|
AxisNullsMode.UsePrevious,
|
|
];
|
|
|
|
await openTestPage(page, RobotChartsWizardUrls.WizardForDatasetSampleCh);
|
|
|
|
await wizardPage.setVisualization(WizardVisualizationId.Area);
|
|
|
|
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'Sales');
|
|
|
|
await wizardPage.placeholderDialog.open(PlaceholderId.Y);
|
|
|
|
let optionValues: string[];
|
|
|
|
await waitForCondition(async () => {
|
|
optionValues = await wizardPage.placeholderDialog.getRadioButtonValues(
|
|
RadioButtons.ConnectNulls,
|
|
);
|
|
|
|
return optionValues.join(',') === expectedValues.join(',');
|
|
}).catch(() => {
|
|
throw new Error(
|
|
`Current options: ${optionValues.join(
|
|
',',
|
|
)}, and expected: ${expectedValues.join(',')}`,
|
|
);
|
|
});
|
|
|
|
let selectedButtonText: string;
|
|
const expectedValue = AxisNullsMode.AsZero;
|
|
|
|
await waitForCondition(async () => {
|
|
const selectedButton = await wizardPage.placeholderDialog.getCheckRadioButton(
|
|
RadioButtons.ConnectNulls,
|
|
);
|
|
|
|
selectedButtonText = (await selectedButton?.getAttribute('value')) || '';
|
|
|
|
return selectedButtonText === expectedValue;
|
|
}).catch(() => {
|
|
throw new Error(
|
|
`By default, ${selectedButtonText} was selected, and ${expectedValue} was expected`,
|
|
);
|
|
});
|
|
},
|
|
);
|
|
});
|