// playwright-dev-page.ts import { Locator } from "@playwright/test"; import BasePage from "../../Base"; import { DashboardPage } from ".."; export class ExpandedFormPage extends BasePage { readonly dashboard: DashboardPage; readonly addNewTableButton: Locator; constructor(dashboard: DashboardPage) { super(dashboard.rootPage); this.dashboard = dashboard; this.addNewTableButton = this.dashboard.get().locator(".nc-add-new-table"); } get() { return this.dashboard.get().locator(`.nc-drawer-expanded-form`); } async fillField({ columnTitle, value, }: { columnTitle: string; value: string; }) { const field = this.get().locator( `[pw-data="nc-expand-col-${columnTitle}"]` ); await field.locator("input").fill(value); } async save() { await this.get().locator('button:has-text("Save Row")').click(); await this.get().press("Escape"); await this.get().waitFor({ state: "hidden" }); await this.toastWait({ message: `updated successfully.` }); await this.get() .locator('[pw-data="grid-load-spinner"]') .waitFor({ state: "hidden" }); } }