82 lines
2.6 KiB
TypeScript
82 lines
2.6 KiB
TypeScript
import type {Page} from '@playwright/test';
|
|
|
|
import {DialogColumnSettingsQa} from '../../../src/shared/constants';
|
|
import {slct} from '../../utils';
|
|
import {CommonSelectors} from '../constants/common-selectors';
|
|
|
|
import {PlaceholderName} from './SectionVisualization';
|
|
|
|
export class ColumnSettings {
|
|
page: Page;
|
|
|
|
constructor(page: Page) {
|
|
this.page = page;
|
|
}
|
|
|
|
async switchUnit(fieldTitle: string, unit: 'auto' | 'pixel' | 'percent') {
|
|
const radioGroupLocator = this.page.locator(
|
|
slct(`${DialogColumnSettingsQa.UnitRadioButtons}__${fieldTitle}`),
|
|
);
|
|
await radioGroupLocator
|
|
.locator(`${CommonSelectors.RadioButtonOptionControl}[value=${unit}]`)
|
|
.click({force: true});
|
|
}
|
|
|
|
async fillWidthValueInput(fieldTitle: string, text: string) {
|
|
await this.page.fill(
|
|
`${slct(`${DialogColumnSettingsQa.WidthValueInput}__${fieldTitle}`)} input`,
|
|
text,
|
|
);
|
|
}
|
|
|
|
async reset() {
|
|
await this.page.click(slct(DialogColumnSettingsQa.ResetButton));
|
|
}
|
|
|
|
async getInputValue(fieldTitle: string) {
|
|
return await this.page.inputValue(
|
|
`${slct(`${DialogColumnSettingsQa.WidthValueInput}__${fieldTitle}`)} input`,
|
|
);
|
|
}
|
|
|
|
async getRadioButtonsValue(fieldTitle: string) {
|
|
const checkedRadioButton = await this.page.$(
|
|
`${slct(
|
|
`${DialogColumnSettingsQa.UnitRadioButtons}__${fieldTitle}`,
|
|
)} .g-segmented-radio-group__option_checked`,
|
|
);
|
|
|
|
const valueWrapper = await checkedRadioButton?.$(CommonSelectors.RadioButtonOptionControl);
|
|
|
|
return valueWrapper?.getAttribute('value');
|
|
}
|
|
|
|
async apply() {
|
|
await this.page.click(slct(DialogColumnSettingsQa.ApplyButton));
|
|
}
|
|
|
|
async open(placeholder?: PlaceholderName) {
|
|
const placeholderLocator = placeholder
|
|
? this.page.locator(slct(placeholder))
|
|
: this.page
|
|
.locator(slct(PlaceholderName.FlatTableColumns))
|
|
.or(this.page.locator(slct(PlaceholderName.PivotTableColumns)));
|
|
await placeholderLocator.hover();
|
|
|
|
await this.page.click(slct('placeholder-action-open-column-settings-dialog'));
|
|
|
|
await this.page.waitForSelector(slct(DialogColumnSettingsQa.Dialog));
|
|
}
|
|
|
|
async cancel() {
|
|
await this.page.click(slct(DialogColumnSettingsQa.CancelButton));
|
|
}
|
|
|
|
async setPinnedColumns(count: number) {
|
|
const inputLocator = this.page
|
|
.locator(slct(DialogColumnSettingsQa.PinnedColumnsInput))
|
|
.locator('input');
|
|
await inputLocator.fill(String(count));
|
|
}
|
|
}
|