66 lines
2.8 KiB
TypeScript
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();
|
|
},
|
|
);
|
|
});
|
|
});
|