140 lines
5.2 KiB
TypeScript
140 lines
5.2 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
import {WizardVisualizationId} from '../../../page-objects/common/Visualization';
|
|
import {DialogFieldMainSectionQa} from '../../../../src/shared/constants';
|
|
|
|
import {CommonUrls} from '../../../page-objects/constants/common-urls';
|
|
import QLPage from '../../../page-objects/ql/QLPage';
|
|
import {PlaceholderName} from '../../../page-objects/wizard/SectionVisualization';
|
|
import {openTestPage, waitForCondition} from '../../../utils';
|
|
import {RobotChartsSQLEditorUrls} from '../../../utils/constants';
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
|
|
const sqlScriptWithArray = `select [1,2,3,4,5]`;
|
|
|
|
const sqlScript3Columns = `select 1, 2, 3`;
|
|
const sqlScript4Columns = `select 1, 'x', 2, 3`;
|
|
|
|
const sqlScriptForFormatting = `select 1337 as "test_column"`;
|
|
|
|
datalensTest.describe('SQL - check visualizations - table', () => {
|
|
datalensTest(
|
|
'Checking that the array in the table is formatted correctly',
|
|
async ({page}: {page: Page}) => {
|
|
const qlPage = new QLPage({page});
|
|
await openTestPage(page, RobotChartsSQLEditorUrls.NewQLChartForCHYTDemo);
|
|
|
|
await qlPage.setVisualization(WizardVisualizationId.FlatTable);
|
|
|
|
await qlPage.setScript(sqlScriptWithArray);
|
|
|
|
const successfulResponsePromise = qlPage.waitForSuccessfulResponse(CommonUrls.ApiRun);
|
|
|
|
await qlPage.runScript();
|
|
|
|
await successfulResponsePromise;
|
|
|
|
await qlPage.chartkit.waitUntilLoaderExists();
|
|
await qlPage.waitForSomeSuccessfulRender();
|
|
|
|
await waitForCondition(async () => {
|
|
const viewTableTexts = await qlPage.chartkit.getRowsTexts();
|
|
const previewTableTexts = await qlPage.previewTable.getRowsTexts();
|
|
|
|
return (
|
|
viewTableTexts[0][0] === '[1,2,3,4,5]' &&
|
|
previewTableTexts[0][0] === '[1,2,3,4,5]'
|
|
);
|
|
});
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
'We check that when adding columns to SELECT, the column names are not lost',
|
|
async ({page}: {page: Page}) => {
|
|
const qlPage = new QLPage({page});
|
|
await openTestPage(page, RobotChartsSQLEditorUrls.NewQLChartForCHYTDemo);
|
|
|
|
await qlPage.setVisualization(WizardVisualizationId.FlatTable);
|
|
|
|
await qlPage.setScript(sqlScript3Columns);
|
|
|
|
const successfulResponsePromise = qlPage.waitForSuccessfulResponse(CommonUrls.ApiRun);
|
|
|
|
await qlPage.runScript();
|
|
|
|
await successfulResponsePromise;
|
|
|
|
await qlPage.waitForSomeSuccessfulRender();
|
|
|
|
const viewTableTexts = await qlPage.chartkit.getHeadRowsTexts();
|
|
const previewTableTexts = await qlPage.previewTable.getHeadRowsTexts();
|
|
|
|
expect(String(viewTableTexts[0])).toEqual('1,2,3');
|
|
expect(String(previewTableTexts[0])).toEqual('1,2,3');
|
|
|
|
await qlPage.clearScript();
|
|
|
|
await qlPage.setScript(sqlScript4Columns);
|
|
|
|
const successfulResponsePromise2 = qlPage.waitForSuccessfulResponse(CommonUrls.ApiRun);
|
|
|
|
await qlPage.runScript();
|
|
|
|
await successfulResponsePromise2;
|
|
|
|
const viewTableTexts2 = await qlPage.chartkit.getHeadRowsTexts();
|
|
const previewTableTexts2 = await qlPage.previewTable.getHeadRowsTexts();
|
|
|
|
expect(String(viewTableTexts2[0])).toEqual('1,2,3');
|
|
expect(String(previewTableTexts2[0])).toEqual(`1,'x',2,3`);
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
'Checking that the formatting settings are working',
|
|
async ({page}: {page: Page}) => {
|
|
const qlPage = new QLPage({page});
|
|
await openTestPage(page, RobotChartsSQLEditorUrls.NewQLChartForPostgresDemo);
|
|
|
|
await qlPage.setVisualization(WizardVisualizationId.FlatTable);
|
|
|
|
await qlPage.setScript(sqlScriptForFormatting);
|
|
|
|
const successfulResponsePromise = qlPage.waitForSuccessfulResponse(CommonUrls.ApiRun);
|
|
|
|
await qlPage.runScript();
|
|
|
|
await successfulResponsePromise;
|
|
|
|
await qlPage.waitForSomeSuccessfulRender();
|
|
|
|
const viewTableTexts = await qlPage.chartkit.getRowsTexts();
|
|
const previewTableTexts = await qlPage.previewTable.getRowsTexts();
|
|
|
|
expect(String(viewTableTexts[0])).toEqual('1 337');
|
|
expect(String(previewTableTexts[0])).toEqual('1337');
|
|
|
|
await qlPage.visualizationItemDialog.open(
|
|
PlaceholderName.FlatTableColumns,
|
|
'test_column',
|
|
);
|
|
await qlPage.visualizationItemDialog.changeInputValue(
|
|
DialogFieldMainSectionQa.PrefixInput,
|
|
'#',
|
|
);
|
|
|
|
const successfulResponsePromise2 = qlPage.waitForSuccessfulResponse(CommonUrls.ApiRun);
|
|
|
|
await qlPage.visualizationItemDialog.clickOnApplyButton();
|
|
|
|
await successfulResponsePromise2;
|
|
|
|
const viewTableTextsAfterFormatting = await qlPage.chartkit.getRowsTexts();
|
|
const previewTableTextsAfterFormatting = await qlPage.previewTable.getRowsTexts();
|
|
|
|
expect(String(viewTableTextsAfterFormatting[0])).toEqual('#1 337');
|
|
expect(String(previewTableTextsAfterFormatting[0])).toEqual('1337');
|
|
},
|
|
);
|
|
});
|