120 lines
3.8 KiB
TypeScript
120 lines
3.8 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
|
|
import DashboardPage from '../../../page-objects/dashboard/DashboardPage';
|
|
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
import {DashTabItemControlSourceType, TitlePlacements} from '../../../../src/shared';
|
|
import {
|
|
SelectorElementType,
|
|
type SelectorSettings,
|
|
} from '../../../page-objects/dashboard/controlActions/ControlActions';
|
|
|
|
const TITLE = 'City';
|
|
const INNER_TITLE = 'innerCity';
|
|
|
|
const createDashWithSelector = async ({
|
|
page,
|
|
settings = {},
|
|
}: {
|
|
page: Page;
|
|
settings?: SelectorSettings;
|
|
}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
|
|
await dashboardPage.createDashboard({
|
|
editDash: async () => {
|
|
await dashboardPage.controlActions.addSelectorWithDefaultSettings({
|
|
...{
|
|
appearance: {
|
|
titlePlacement: TitlePlacements.Left,
|
|
title: TITLE,
|
|
innerTitleEnabled: true,
|
|
innerTitle: INNER_TITLE,
|
|
},
|
|
},
|
|
...settings,
|
|
});
|
|
},
|
|
});
|
|
};
|
|
|
|
const checkLabels = async (dashboardPage: DashboardPage, type: 'select' | 'input') => {
|
|
if (type === 'select') {
|
|
await dashboardPage.chartkitControl.expectSelectInnerTitleVisible(INNER_TITLE);
|
|
} else {
|
|
await dashboardPage.chartkitControl.expectInputInnerTitleVisible(INNER_TITLE);
|
|
}
|
|
|
|
await dashboardPage.chartkitControl.expectTitleVisible(TITLE);
|
|
};
|
|
|
|
datalensTest.describe('Dashboards - The internal header of selectors', () => {
|
|
datalensTest.afterEach(async ({page}: {page: Page}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
|
|
await dashboardPage.deleteDash();
|
|
});
|
|
|
|
datalensTest(
|
|
'ElementType: Dataset List. The configured headers of the selectors based on the dataset are displayed on the dashboard',
|
|
async ({page}: {page: Page}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
|
|
await createDashWithSelector({
|
|
page,
|
|
});
|
|
|
|
await checkLabels(dashboardPage, 'select');
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
'ElementType: Dataset Input field. The configured headers of the selectors based on the dataset are displayed on the dashboard',
|
|
async ({page}: {page: Page}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
|
|
await createDashWithSelector({
|
|
page,
|
|
settings: {elementType: SelectorElementType.Input},
|
|
});
|
|
|
|
await checkLabels(dashboardPage, 'input');
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
'ElementType: Manual List. The configured headers of the manual selectors are displayed on the dashboard',
|
|
async ({page}: {page: Page}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
|
|
await createDashWithSelector({
|
|
page,
|
|
settings: {
|
|
sourceType: DashTabItemControlSourceType.Manual,
|
|
fieldName: 'Some name',
|
|
},
|
|
});
|
|
|
|
await checkLabels(dashboardPage, 'select');
|
|
},
|
|
);
|
|
|
|
datalensTest(
|
|
'ElementType: Manual Input field. The configured headers of the manual selectors are displayed on the dashboard',
|
|
async ({page}: {page: Page}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
|
|
await createDashWithSelector({
|
|
page,
|
|
settings: {
|
|
sourceType: DashTabItemControlSourceType.Manual,
|
|
fieldName: 'Some name',
|
|
elementType: SelectorElementType.Input,
|
|
},
|
|
});
|
|
|
|
await checkLabels(dashboardPage, 'input');
|
|
},
|
|
);
|
|
});
|