58 lines
1.6 KiB
TypeScript
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));
|
|
}
|
|
}
|