66 lines
2.4 KiB
TypeScript
66 lines
2.4 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
|
|
import {TestParametrizationConfig} from '../../../types/config';
|
|
import {CommonUrls} from '../../../page-objects/constants/common-urls';
|
|
import QLPage from '../../../page-objects/ql/QLPage';
|
|
import {openTestPage, slct} from '../../../utils';
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
import {VisualizationsQa} from '../../../../src/shared';
|
|
|
|
const visualizationList = [
|
|
VisualizationsQa.Line,
|
|
VisualizationsQa.Area,
|
|
VisualizationsQa.Area100p,
|
|
VisualizationsQa.Column,
|
|
VisualizationsQa.Column100p,
|
|
VisualizationsQa.Bar,
|
|
VisualizationsQa.Bar100p,
|
|
VisualizationsQa.Scatter,
|
|
VisualizationsQa.Pie,
|
|
VisualizationsQa.Donut,
|
|
VisualizationsQa.Treemap,
|
|
VisualizationsQa.Metric,
|
|
VisualizationsQa.FlatTable,
|
|
];
|
|
|
|
datalensTest.describe('SQL validation of visualizations', () => {
|
|
datalensTest(
|
|
'Checking the list of available visualizations, a basic test should be written for each one',
|
|
async ({page, config}: {page: Page; config: TestParametrizationConfig}) => {
|
|
const qlPage = new QLPage({page});
|
|
|
|
await openTestPage(page, config.ql.urls.NewQLChartWithConnection);
|
|
|
|
const visualizations = await qlPage.getVisualizations();
|
|
|
|
expect([...visualizationList].sort()).toEqual(visualizations.sort());
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
`Correct draw for all available visualizations`,
|
|
async ({page, config}: {page: Page; config: TestParametrizationConfig}) => {
|
|
for (const visualizationName of visualizationList) {
|
|
const qlPage = new QLPage({page});
|
|
|
|
await openTestPage(page, config.ql.urls.NewQLChartWithConnection);
|
|
|
|
await qlPage.page.click(`${slct('visualization-select-btn')}`);
|
|
await qlPage.page
|
|
.locator('.g-menu__list-item')
|
|
.getByTestId(visualizationName)
|
|
.click();
|
|
|
|
const apiRunRequest = qlPage.page.waitForRequest(
|
|
(request) => new URL(request.url()).pathname === CommonUrls.ApiRun,
|
|
);
|
|
await qlPage.setScript(config.ql.queries.salesBySalesFloat);
|
|
await qlPage.runScript();
|
|
|
|
await (await apiRunRequest).response();
|
|
await qlPage.waitForSomeSuccessfulRender();
|
|
}
|
|
},
|
|
);
|
|
});
|