datalens-ui/tests/page-objects/dataset/DatasetTabSection.ts
2026-06-24 20:31:05 +05:00

58 lines
1.6 KiB
TypeScript

import {Page} from '@playwright/test';
import {DatasetTabSectionQA} from '../../../src/shared/constants';
import {slct} from '../../utils';
export default class DatasetTabSection {
private page: Page;
constructor(page: Page) {
this.page = page;
}
async clickAddButton() {
await this.page.click(slct(DatasetTabSectionQA.AddButton));
}
async getRowsCount() {
const rows = await this.page.$$(slct(DatasetTabSectionQA.FieldRow));
return rows.length;
}
async getRowLocatorByIndex(index: number) {
const locator = this.page.locator(slct(DatasetTabSectionQA.FieldRow));
return locator.nth(index);
}
async hoverOnRow(index: number) {
const rowLocator = this.page.locator(slct(DatasetTabSectionQA.FieldRow));
await rowLocator.nth(index).hover();
}
async clickOnRowMenu(index: number) {
const menuLocator = this.page.locator(slct(DatasetTabSectionQA.FieldRowMenu));
await menuLocator.nth(index).click();
}
async openRowMenu(index: number) {
await this.hoverOnRow(index);
await this.clickOnRowMenu(index);
}
async deleteRow(index: number) {
await this.openRowMenu(index);
await this.page.click(slct(DatasetTabSectionQA.RemoveRow));
}
async duplicateRow(index: number) {
await this.openRowMenu(index);
await this.page.click(slct(DatasetTabSectionQA.DuplicateRow));
}
async editRow(index: number) {
await this.openRowMenu(index);
await this.page.click(slct(DatasetTabSectionQA.EditRow));
}
}