112 lines
5.0 KiB
TypeScript
112 lines
5.0 KiB
TypeScript
import {Page} from '@playwright/test';
|
|
|
|
import {DialogParameterDataTypes} from '../../../page-objects/common/DialogParameter';
|
|
import DatasetPage from '../../../page-objects/dataset/DatasetPage';
|
|
import {openTestPage} from '../../../utils';
|
|
import {RobotChartsDatasetUrls} from '../../../utils/constants';
|
|
import datalensTest from '../../../utils/playwright/globalTestDefinition';
|
|
|
|
const PARAMETER_NAME = 'PARAMETER_TEST_NAME';
|
|
const PARAMETER_VALUE = 'PARAMETER_TEST_VALUE';
|
|
|
|
datalensTest.describe('Datasets - Parameter dialog validation', () => {
|
|
datalensTest.beforeEach(async ({page}: {page: Page}) => {
|
|
await openTestPage(page, RobotChartsDatasetUrls.DatasetWithParameters, {tab: 'parameters'});
|
|
});
|
|
|
|
datalensTest('Required fields validation', async ({page}: {page: Page}) => {
|
|
const datasetPage = new DatasetPage({page});
|
|
|
|
await datasetPage.datasetTabSection.clickAddButton();
|
|
const nameInput = await datasetPage.dialogParameter.getNameInput();
|
|
const defaultValueInput = await datasetPage.dialogParameter.getDefaultValueInput();
|
|
const applyButton = await datasetPage.dialogParameter.getApplyButton();
|
|
|
|
// Try to apply with empty fields
|
|
await datasetPage.dialogParameter.apply();
|
|
|
|
// Check that all fields are invalid and submit button is disabled
|
|
expect(nameInput).toHaveAttribute('aria-invalid', 'true');
|
|
expect(defaultValueInput).toHaveAttribute('aria-invalid', 'true');
|
|
expect(applyButton).toBeDisabled();
|
|
|
|
// Set parameter name
|
|
await datasetPage.dialogParameter.setName(PARAMETER_NAME);
|
|
|
|
// Check that name field is valid, default value field is not, submit button is disabled
|
|
expect(nameInput).not.toHaveAttribute('aria-invalid');
|
|
expect(defaultValueInput).toHaveAttribute('aria-invalid', 'true');
|
|
expect(applyButton).toBeDisabled();
|
|
|
|
// Set parameter value
|
|
await datasetPage.dialogParameter.setDefaultValue(PARAMETER_VALUE);
|
|
|
|
// Check that all fields are valid and submit button is enabled
|
|
expect(nameInput).not.toHaveAttribute('aria-invalid');
|
|
expect(defaultValueInput).not.toHaveAttribute('aria-invalid');
|
|
expect(applyButton).not.toBeDisabled();
|
|
|
|
// Set empty values in fields
|
|
await datasetPage.dialogParameter.setName('');
|
|
await datasetPage.dialogParameter.setDefaultValue('');
|
|
|
|
// Check that all fields are invalid and submit button is disabled
|
|
expect(nameInput).toHaveAttribute('aria-invalid', 'true');
|
|
expect(defaultValueInput).toHaveAttribute('aria-invalid', 'true');
|
|
expect(applyButton).toBeDisabled();
|
|
});
|
|
|
|
datalensTest('Parameter name validation', async ({page}: {page: Page}) => {
|
|
const datasetPage = new DatasetPage({page});
|
|
|
|
await datasetPage.datasetTabSection.clickAddButton();
|
|
const nameInput = await datasetPage.dialogParameter.getNameInput();
|
|
|
|
await datasetPage.dialogParameter.setName('_');
|
|
expect(nameInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setName('абв');
|
|
expect(nameInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setName('±');
|
|
expect(nameInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setName('tab');
|
|
expect(nameInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setName('1234567890asdfghzxcvbn!@#$%^&*_-QWERTY');
|
|
expect(nameInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setName('PARAMETER_NAME');
|
|
expect(nameInput).not.toHaveAttribute('aria-invalid');
|
|
});
|
|
|
|
datalensTest('Parameter default_value validation [number]', async ({page}: {page: Page}) => {
|
|
const datasetPage = new DatasetPage({page});
|
|
|
|
await datasetPage.datasetTabSection.clickAddButton();
|
|
await datasetPage.dialogParameter.selectType(DialogParameterDataTypes.Int);
|
|
const defaultValueInput = await datasetPage.dialogParameter.getDefaultValueInput();
|
|
|
|
await datasetPage.dialogParameter.setDefaultValue('abc');
|
|
expect(defaultValueInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setDefaultValue('123.456');
|
|
expect(defaultValueInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setDefaultValue('123');
|
|
expect(defaultValueInput).not.toHaveAttribute('aria-invalid');
|
|
|
|
await datasetPage.dialogParameter.selectType(DialogParameterDataTypes.Float);
|
|
|
|
await datasetPage.dialogParameter.setDefaultValue('abc');
|
|
expect(defaultValueInput).toHaveAttribute('aria-invalid', 'true');
|
|
|
|
await datasetPage.dialogParameter.setDefaultValue('123.456');
|
|
expect(defaultValueInput).not.toHaveAttribute('aria-invalid');
|
|
|
|
await datasetPage.dialogParameter.setDefaultValue('123');
|
|
expect(defaultValueInput).not.toHaveAttribute('aria-invalid');
|
|
});
|
|
});
|