Files
nocodb/scripts/playwright/pages/Dashboard/common/ProjectMenu/index.ts
2022-11-03 16:25:14 +05:30

37 lines
1.0 KiB
TypeScript

import BasePage from "../../../Base";
import { GridPage } from "../../Grid";
import { GalleryPage } from "../../Gallery";
import { KanbanPage } from "../../Kanban";
import { FormPage } from "../../Form";
export class ProjectMenuObject extends BasePage {
constructor(parent: GridPage | GalleryPage | KanbanPage | FormPage) {
super(parent.rootPage);
}
get() {
return this.rootPage.locator(`[pw-data="nc-fields-menu"]`);
}
async toggle() {
await this.rootPage.locator('[pw-data="nc-project-menu"]').click();
}
async click({ menu, subMenu }: { menu: string; subMenu: string }) {
let pMenu = await this.rootPage.locator(
`.nc-dropdown-project-menu:visible`
);
await pMenu
.locator(`div.nc-project-menu-item:has-text("${menu}"):visible`)
.click();
await this.rootPage.waitForTimeout(2000);
if (subMenu) {
await this.rootPage
.locator(`div.nc-project-menu-item:has-text("${subMenu}"):visible`)
.click();
await this.rootPage.waitForTimeout(10000);
}
}
}