2026-06-24 21:10:34 +05:00

65 lines
2.0 KiB
TypeScript

import {Page} from '@playwright/test';
import {slct} from '../../utils';
import {RobotChartsDatasets} from '../../utils/constants';
import {SectionDatasetQA} from '../../../src/shared';
class DatasetSelectorSettings {
errorIconSelector = slct('dataset-error-icon');
private page: Page;
constructor(page: Page) {
this.page = page;
}
async click() {
await this.page.click(slct(SectionDatasetQA.DatasetSelect));
}
async waitForSelectedValue(dataset: RobotChartsDatasets) {
await this.page.waitForSelector(slct('current-dataset', dataset));
}
async clickToSelectDatasetItemWithText(item: string) {
await this.page.click(slct('dataset-select-item', item));
}
async clickAddAdditionalDatasetButton() {
await this.page.click(slct(SectionDatasetQA.AddDatasetButton));
}
async openActionMenu(dataset?: string) {
const datasetSelectItem = dataset
? this.page.locator(slct('dataset-select-item'), {hasText: dataset}).first()
: this.page.locator(slct('dataset-select-item')).first();
await datasetSelectItem.hover();
await datasetSelectItem.locator(slct(SectionDatasetQA.DatasetSelectMore)).click();
}
async clickToDatasetAction(
dataset: RobotChartsDatasets | undefined,
action:
| SectionDatasetQA.RemoveDatasetButton
| SectionDatasetQA.GoToDatasetButton
| SectionDatasetQA.ReplaceDatasetButton
| SectionDatasetQA.SettingsDatasetButton,
) {
await this.openActionMenu(dataset);
await this.page.click(`${slct(SectionDatasetQA.DatasetSelectMoreMenu)} ${slct(action)}`);
}
async changeDataset(datasetName: RobotChartsDatasets) {
await this.page.click(`${slct('dataset-select-item')} >> text=${datasetName}`);
}
getDatasetsCount() {
return this.page
.$$(slct('dataset-select-item'))
.then((datasetItems) => (datasetItems.length > 1 ? datasetItems.length - 2 : 1));
}
}
export default DatasetSelectorSettings;