datalens-ui/tests/opensource-suites/wizard/tooltips/tooltip-header-formatting.test.ts
2026-06-24 20:31:05 +05:00

139 lines
6.9 KiB
TypeScript

import {expect} from '@playwright/test';
import datalensTest from '../../../utils/playwright/globalTestDefinition';
import {openTestPage, slct} from '../../../utils';
import {ChartKitQa, WizardPageQa, WizardVisualizationId} from '../../../../src/shared';
import {COMMON_CHARTKIT_SELECTORS} from '../../../page-objects/constants/chartkit';
import WizardPage from '../../../page-objects/wizard/WizardPage';
import {PlaceholderName} from '../../../page-objects/wizard/SectionVisualization';
datalensTest.describe('Wizard', () => {
datalensTest.describe('Tooltip header', () => {
datalensTest.beforeEach(async ({page, config}) => {
await openTestPage(page, config.wizard.urls.WizardBasicDataset);
const wizardPage = new WizardPage({page});
await wizardPage.setVisualization(WizardVisualizationId.Column);
});
datalensTest('Should format the date correctly when clustered by day', async ({page}) => {
const wizardPage = new WizardPage({page});
const preview = page.locator(slct(WizardPageQa.SectionPreview));
const chart = preview.locator('.gcharts-chart');
await wizardPage.createNewFieldWithFormula(
'DateClusteredByDay',
'DATETRUNC([Order_date], "day")',
);
await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.X,
'DateClusteredByDay',
);
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Filters,
'DateClusteredByDay',
);
await wizardPage.filterEditor.selectRangeDate(['01.01.2018', '01.01.2018']);
await wizardPage.filterEditor.apply();
await expect(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible();
const bar = chart.locator('.gcharts-bar-x').first();
await expect(bar).toBeVisible();
await bar.hover({force: true});
const headerText = await page
.locator(COMMON_CHARTKIT_SELECTORS.tooltipHeader)
.textContent();
expect(headerText).toBe('1 January 2018 Mon');
});
datalensTest('Should format the date correctly when clustered by week', async ({page}) => {
const wizardPage = new WizardPage({page});
const preview = page.locator(slct(WizardPageQa.SectionPreview));
const chart = preview.locator('.gcharts-chart');
await wizardPage.createNewFieldWithFormula(
'DateClusteredByWeek',
'DATETRUNC([Order_date], "week")',
);
await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.X,
'DateClusteredByWeek',
);
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Filters,
'DateClusteredByWeek',
);
await wizardPage.filterEditor.selectRangeDate(['01.01.2018', '08.01.2018']);
await wizardPage.filterEditor.apply();
await expect(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible();
const bar = chart.locator('.gcharts-bar-x').first();
await expect(bar).toBeVisible();
await bar.hover({force: true});
const headerText = await page
.locator(COMMON_CHARTKIT_SELECTORS.tooltipHeader)
.textContent();
expect(headerText).toBe('1 January 2018');
});
datalensTest('Should format the date correctly when clustered by month', async ({page}) => {
const wizardPage = new WizardPage({page});
const preview = page.locator(slct(WizardPageQa.SectionPreview));
const chart = preview.locator('.gcharts-chart');
await wizardPage.createNewFieldWithFormula(
'DateClusteredByMonth',
'DATETRUNC([Order_date], "month")',
);
await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.X,
'DateClusteredByMonth',
);
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Filters,
'DateClusteredByMonth',
);
await wizardPage.filterEditor.selectRangeDate(['01.01.2018', '01.02.2018']);
await wizardPage.filterEditor.apply();
await expect(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible();
const bar = chart.locator('.gcharts-bar-x').first();
await expect(bar).toBeVisible();
await bar.hover({force: true});
const headerText = await page
.locator(COMMON_CHARTKIT_SELECTORS.tooltipHeader)
.textContent();
expect(headerText).toBe('January 2018');
});
datalensTest('Should format the date correctly when clustered by year', async ({page}) => {
const wizardPage = new WizardPage({page});
const preview = page.locator(slct(WizardPageQa.SectionPreview));
const chart = preview.locator('.gcharts-chart');
await wizardPage.createNewFieldWithFormula(
'DateClusteredByYear',
'DATETRUNC([Order_date], "year")',
);
await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.X,
'DateClusteredByYear',
);
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Filters,
'DateClusteredByYear',
);
await wizardPage.filterEditor.selectRangeDate(['01.01.2017', '01.01.2018']);
await wizardPage.filterEditor.apply();
await expect(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible();
const bar = chart.locator('.gcharts-bar-x').first();
await expect(bar).toBeVisible();
await bar.hover({force: true});
const headerText = await page
.locator(COMMON_CHARTKIT_SELECTORS.tooltipHeader)
.textContent();
expect(headerText).toBe('2017');
});
});
});