import {expect} from '@playwright/test'; import datalensTest from '../../../../utils/playwright/globalTestDefinition'; import {openTestPage, slct} from '../../../../utils'; import { ChartKitQa, DialogFieldLabelModeValuesQa, DialogFieldMainSectionQa, WizardPageQa, WizardVisualizationId, } from '../../../../../src/shared'; import WizardPage from '../../../../page-objects/wizard/WizardPage'; import {PlaceholderName} from '../../../../page-objects/wizard/SectionVisualization'; import {SMALL_SCREENSHOT_VIEWPORT_SIZE} from '../constants'; datalensTest.describe('Wizard', () => { datalensTest.describe('Area chart', () => { datalensTest.beforeEach(async ({page, config}) => { await openTestPage(page, config.wizard.urls.WizardBasicDataset); await page.setViewportSize(SMALL_SCREENSHOT_VIEWPORT_SIZE); const wizardPage = new WizardPage({page}); await wizardPage.setVisualization(WizardVisualizationId.Area); }); datalensTest('String dataLabels @screenshot', async ({page}) => { const wizardPage = new WizardPage({page}); const preview = page.locator(slct(WizardPageQa.SectionPreview)); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'segment'); await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])'); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum'); await wizardPage.createNewFieldWithFormula('label', 'max([segment])'); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Labels, 'label'); // 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(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible(); await expect(preview).toHaveScreenshot(); }); datalensTest('Markup dataLabels @screenshot', async ({page}) => { const wizardPage = new WizardPage({page}); const preview = page.locator(slct(WizardPageQa.SectionPreview)); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'segment'); await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])'); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum'); await wizardPage.createNewFieldWithFormula( 'label', "color(str(int([SalesSum])), 'var(--g-color-text-danger)')", ); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Labels, 'label'); // 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(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible(); await expect(preview).toHaveScreenshot(); }); datalensTest('Datetime dataLabels @screenshot', async ({page}) => { const wizardPage = new WizardPage({page}); const preview = page.locator(slct(WizardPageQa.SectionPreview)); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'segment'); await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])'); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum'); await wizardPage.createNewFieldWithFormula('label', 'MAX([Order_date])'); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Labels, 'label'); // 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(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible(); await expect(preview).toHaveScreenshot(); }); }); datalensTest.describe('Area normalised chart', () => { datalensTest.beforeEach(async ({page, config}) => { await openTestPage(page, config.wizard.urls.WizardBasicDataset); await page.setViewportSize(SMALL_SCREENSHOT_VIEWPORT_SIZE); const wizardPage = new WizardPage({page}); await wizardPage.setVisualization(WizardVisualizationId.Area100p); }); datalensTest('Percentage as labels @screenshot', async ({page}) => { const wizardPage = new WizardPage({page}); const preview = page.locator(slct(WizardPageQa.SectionPreview)); await wizardPage.createNewFieldWithFormula('SalesSum', 'sum([Sales])'); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.X, 'region'); await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Y, 'SalesSum'); await wizardPage.sectionVisualization.addFieldByClick( PlaceholderName.Colors, 'segment', ); await wizardPage.sectionVisualization.addFieldByClick( PlaceholderName.Labels, 'SalesSum', ); await wizardPage.visualizationItemDialog.open(PlaceholderName.Labels, 'SalesSum'); await wizardPage.visualizationItemDialog.changeSelectorValue( DialogFieldMainSectionQa.LabelModeSelector, DialogFieldLabelModeValuesQa.Percent, ); await wizardPage.visualizationItemDialog.clickOnApplyButton(); // 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(preview.locator(slct(ChartKitQa.Loader))).not.toBeVisible(); await expect(preview).toHaveScreenshot(); }); }); });