2026-06-24 21:10:34 +05:00

66 lines
2.8 KiB
TypeScript

import type {Locator} from '@playwright/test';
import {expect} from '@playwright/test';
import {ChartKitTableQa, WizardVisualizationId} from '../../../../../src/shared';
import {ChartSettingsItems} from '../../../../page-objects/wizard/ChartSettings';
import {PlaceholderName} from '../../../../page-objects/wizard/SectionVisualization';
import WizardPage from '../../../../page-objects/wizard/WizardPage';
import {openTestPage, slct} from '../../../../utils';
import datalensTest from '../../../../utils/playwright/globalTestDefinition';
async function paginateTo(table: Locator, pageNumber: number) {
const paginatorInput = table.locator(slct(ChartKitTableQa.PaginatorPageInput)).locator('input');
await paginatorInput.fill(String(pageNumber));
await paginatorInput.press('Enter');
}
datalensTest.describe('Wizard', () => {
datalensTest.describe('Pivot table', () => {
datalensTest.beforeEach(async ({page, config}) => {
await openTestPage(page, config.wizard.urls.WizardBasicDataset);
const wizardPage = new WizardPage({page});
await wizardPage.setVisualization(WizardVisualizationId.PivotTable);
await wizardPage.chartSettings.open();
await wizardPage.chartSettings.toggleSettingItem(ChartSettingsItems.Pagination, 'on');
await wizardPage.chartSettings.apply();
});
datalensTest('Page number over limit', async ({page}) => {
const wizardPage = new WizardPage({page});
// Create measure field
const measureField = 'OrdersCount';
await wizardPage.createNewFieldWithFormula(measureField, 'count([order_id])');
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Rows, 'country');
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Rows, 'id');
await wizardPage.sectionVisualization.addFieldByClick(
PlaceholderName.Measures,
'OrdersCount',
);
const table = wizardPage.chartkit.getTableLocator();
// Put a number that obviously exceeds the number of pages
await paginateTo(table, 100);
await expect(table.getByText('No data')).toBeVisible();
});
datalensTest(
'Page number over limit (table without columns or measures, only rows)',
async ({page}) => {
const wizardPage = new WizardPage({page});
await wizardPage.sectionVisualization.addFieldByClick(PlaceholderName.Rows, 'Id');
const table = wizardPage.chartkit.getTableLocator();
// Put a number that obviously exceeds the number of pages
await paginateTo(table, 100);
await expect(table.getByText('No data')).toBeVisible();
},
);
});
});