96 lines
3.9 KiB
TypeScript
96 lines
3.9 KiB
TypeScript
import {expect} from '@playwright/test';
|
|
|
|
import QLPage from '../../../../page-objects/ql/QLPage';
|
|
import {openTestPage} from '../../../../utils';
|
|
import datalensTest from '../../../../utils/playwright/globalTestDefinition';
|
|
import {AxisMode, PlaceholderId} from '../../../../../src/shared';
|
|
import {PlaceholderName} from '../../../../page-objects/wizard/SectionVisualization';
|
|
import {RadioButtons, RadioButtonsValues} from '../../../../page-objects/wizard/PlaceholderDialog';
|
|
import {COMMON_CHARTKIT_SELECTORS} from '../../../../page-objects/constants/chartkit';
|
|
|
|
datalensTest.describe('QL', () => {
|
|
datalensTest.describe('Column chart', () => {
|
|
datalensTest.beforeEach(async ({page, config}) => {
|
|
await openTestPage(page, config.ql.urls.NewQLChartWithConnection);
|
|
|
|
const qlPage = new QLPage({page});
|
|
|
|
await qlPage.setScript(config.ql.queries.dateAndSales);
|
|
await qlPage.runScript();
|
|
});
|
|
|
|
datalensTest(
|
|
'Check that fields order does not affect axis settings @screenshot',
|
|
async ({page, config}, testInfo) => {
|
|
const qlPage = new QLPage({page});
|
|
|
|
const previewLoader = page.locator('.grid-loader');
|
|
const chart = page.locator(COMMON_CHARTKIT_SELECTORS.chart);
|
|
|
|
await qlPage.sectionVisualization.removeFieldByClick(
|
|
PlaceholderName.X,
|
|
'Column Names',
|
|
);
|
|
await qlPage.sectionVisualization.removeFieldByClick(
|
|
PlaceholderName.Y,
|
|
'date_year',
|
|
);
|
|
await qlPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'date_year');
|
|
|
|
await expect(previewLoader).not.toBeVisible();
|
|
|
|
await qlPage.placeholderDialog.open(PlaceholderId.X);
|
|
|
|
const selectedMode = await qlPage.placeholderDialog.getRadioButtonsSelectedValue(
|
|
RadioButtons.AxisMode,
|
|
);
|
|
|
|
expect(selectedMode).toEqual(AxisMode.Continuous);
|
|
|
|
await qlPage.placeholderDialog.toggleRadioButton(
|
|
RadioButtons.AxisMode,
|
|
RadioButtonsValues.Discrete,
|
|
);
|
|
|
|
await qlPage.placeholderDialog.apply();
|
|
|
|
await expect(previewLoader).not.toBeVisible();
|
|
// Put the mouse away so that the presence of hover elements does not interfere with taking screenshots
|
|
await page.mouse.move(-1, -1);
|
|
await expect(await chart.screenshot()).toMatchSnapshot(`${testInfo.title}.png`);
|
|
|
|
await qlPage.clearScript();
|
|
await qlPage.setScript(config.ql.queries.dateAndSalesModified);
|
|
|
|
await qlPage.runScript();
|
|
|
|
await expect(previewLoader).not.toBeVisible();
|
|
|
|
await qlPage.sectionVisualization.removeFieldByClick(PlaceholderName.Y, 'sales');
|
|
await qlPage.sectionVisualization.addFieldByClick(
|
|
PlaceholderName.Y,
|
|
'average_sales',
|
|
);
|
|
|
|
await expect(previewLoader).not.toBeVisible();
|
|
|
|
await qlPage.placeholderDialog.open(PlaceholderId.X);
|
|
|
|
const selectedModeAfterModify =
|
|
await qlPage.placeholderDialog.getRadioButtonsSelectedValue(
|
|
RadioButtons.AxisMode,
|
|
);
|
|
|
|
expect(selectedModeAfterModify).toEqual(AxisMode.Discrete);
|
|
|
|
await qlPage.placeholderDialog.close();
|
|
|
|
// Put the mouse away so that the presence of hover elements does not interfere with taking screenshots
|
|
await page.mouse.move(-1, -1);
|
|
// X axis should stay discrete after changing the query
|
|
await expect(await chart.screenshot()).toMatchSnapshot(`${testInfo.title}.png`);
|
|
},
|
|
);
|
|
});
|
|
});
|