datalens-ui/tests/suites/dash/selectors/addSelectors.test.ts
2026-06-24 21:10:34 +05:00

55 lines
2.0 KiB
TypeScript

import {Page} from '@playwright/test';
import DashboardPage from '../../../page-objects/dashboard/DashboardPage';
import {getControlByTitle} from '../../../utils';
import datalensTest from '../../../utils/playwright/globalTestDefinition';
const PARAMS = {
DASH_NAME_PREFIX: 'e2e-test-dash',
CONTROL_TITLE: 'test-control',
CONTROL_FIELD_NAME: 'test-control-field',
CONTROL_ITEMS: ['91000', '98800'],
CONTROL_ITEM_PREFIX: 'Value',
CHART_NAME: 'csv-based-dataset — Pie chart',
CHART_URL: '/wizard/9ez4zmky3tccy',
CHART_FIELD: 'Population String',
};
const CONTROL_ITEM_COUNT = 3;
datalensTest.describe('Dashboards - Basic functionality', () => {
datalensTest(
'Adding a chart and selector with manual input of values and default value',
async ({page}: {page: Page}) => {
const dashboardPage = new DashboardPage({page});
// filling in the values for the selector
const items: string[] = [];
for (let i = 0; i < CONTROL_ITEM_COUNT; i++) {
items.push(`${PARAMS.CONTROL_ITEM_PREFIX}-${i + 1}`);
}
const controlDefaultValue = items[items.length - 1];
// creating a new dashboard
await dashboardPage.createDashboard({
editDash: async () => {
// adding a selector with a default value
await dashboardPage.controlActions.addSelector({
appearance: {title: PARAMS.CONTROL_TITLE},
fieldName: PARAMS.CONTROL_FIELD_NAME,
items,
defaultValue: controlDefaultValue,
});
},
});
// get the control by name
const control = await getControlByTitle(page, PARAMS.CONTROL_TITLE);
// check that the default value is set correctly
await control.waitForSelector(`span >> text=${controlDefaultValue}`);
await dashboardPage.deleteDashFromViewMode();
},
);
});