86 lines
3.4 KiB
TypeScript
86 lines
3.4 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
import DashboardPage from '../../../page-objects/dashboard/DashboardPage';
|
|
import {clickSelectOption, openTestPage, slct} from '../../../utils';
|
|
import {RobotChartsDashboardUrls} from '../../../utils/constants';
|
|
import {ControlQA, DialogDashWidgetQA, ParamsSettingsQA} from '../../../../src/shared/constants/qa';
|
|
import {COMMON_DASH_SELECTORS} from '../constants';
|
|
|
|
const PARAMS = {
|
|
WIDGET_PARAM_NAME: 'Weather',
|
|
INITIAL_SELECTOR_PARAM_VALUE: '2017',
|
|
RESULT_SELECTOR_PARAM_VALUE: '2019',
|
|
EDITOR_PARAM_VALUE: 'Good',
|
|
};
|
|
|
|
const checkWidgetParam = async (page: Page, dashboardPage: DashboardPage) => {
|
|
await dashboardPage.forceEnterEditMode();
|
|
// edit the second widget - editor chart
|
|
const editWidgetControls = await page.$$(slct(ControlQA.controlSettings));
|
|
await editWidgetControls[1].click();
|
|
|
|
const paramsButton = await page.$(slct(ParamsSettingsQA.Open));
|
|
await paramsButton?.click();
|
|
|
|
const paramRows = await page.$$(slct(ParamsSettingsQA.ParamRow));
|
|
expect(paramRows.length).toEqual(1);
|
|
|
|
const paramInput = await page.waitForSelector(`${slct(ParamsSettingsQA.ParamTitle)} input`);
|
|
const paramInputValue = await paramInput.inputValue();
|
|
expect(paramInputValue).toBe(PARAMS.WIDGET_PARAM_NAME);
|
|
await page.waitForSelector(
|
|
`${slct(ParamsSettingsQA.ParamValue)} >> text=${PARAMS.EDITOR_PARAM_VALUE}`,
|
|
);
|
|
|
|
await page.click(slct(DialogDashWidgetQA.Cancel));
|
|
await dashboardPage.exitEditMode();
|
|
};
|
|
|
|
datalensTest.describe(`Dashboards - Parameters in editor widget`, () => {
|
|
datalensTest(
|
|
'Changes in the influencing selector do not affect the params in the editor chart widget',
|
|
async ({page}: {page: Page}) => {
|
|
const dashboardPage = new DashboardPage({page});
|
|
await openTestPage(page, RobotChartsDashboardUrls.DashboardWithEditorChartWithParams);
|
|
|
|
// check the selector param and the widget param in markdown
|
|
await page.waitForSelector(
|
|
`${slct(COMMON_DASH_SELECTORS.DASH_PLUGIN_WIDGET_BODY)} >> text=${
|
|
PARAMS.INITIAL_SELECTOR_PARAM_VALUE
|
|
}`,
|
|
);
|
|
await page.waitForSelector(
|
|
`${slct(COMMON_DASH_SELECTORS.DASH_PLUGIN_WIDGET_BODY)} >> text=${
|
|
PARAMS.EDITOR_PARAM_VALUE
|
|
}`,
|
|
);
|
|
|
|
await checkWidgetParam(page, dashboardPage);
|
|
|
|
// change the value in the selector
|
|
await dashboardPage.waitForSelector(slct(ControlQA.controlSelect));
|
|
await clickSelectOption(
|
|
page,
|
|
ControlQA.controlSelect,
|
|
PARAMS.RESULT_SELECTOR_PARAM_VALUE,
|
|
);
|
|
|
|
// check that the selector param has changed
|
|
await page.waitForSelector(
|
|
`${slct(COMMON_DASH_SELECTORS.DASH_PLUGIN_WIDGET_BODY)} >> text=${
|
|
PARAMS.RESULT_SELECTOR_PARAM_VALUE
|
|
}`,
|
|
);
|
|
// check that the widget param hasn't changed
|
|
await page.waitForSelector(
|
|
`${slct(COMMON_DASH_SELECTORS.DASH_PLUGIN_WIDGET_BODY)} >> text=${
|
|
PARAMS.EDITOR_PARAM_VALUE
|
|
}`,
|
|
);
|
|
|
|
// check that the param hasn't changed
|
|
await checkWidgetParam(page, dashboardPage);
|
|
},
|
|
);
|
|
});
|