// playwright-dev-page.ts import { expect, Page } from "@playwright/test"; import BasePage from "../Base"; import { ProjectsPage } from "../ProjectsPage"; export class SignupPage extends BasePage { readonly projectsPage: ProjectsPage; constructor(rootPage: Page) { super(rootPage); this.projectsPage = new ProjectsPage(rootPage); } prefixEmail(email: string) { const parallelId = process.env.TEST_PARALLEL_INDEX ?? '0' return `nc_test_${parallelId}_${email}`; } goto() { return this.rootPage.goto("/#/signup/"); } get() { return this.rootPage.locator("html"); } async signUp({ email, password, withoutPrefix }: { email: string; password: string, withoutPrefix?: boolean }) { if(!withoutPrefix) email = this.prefixEmail(email); const signUp = this.rootPage; await signUp.locator('button:has-text("SIGN UP")').waitFor(); await signUp .locator(`input[placeholder="Enter your work email"]`) .fill(email); await signUp .locator(`input[placeholder="Enter your password"]`) .fill(password); await signUp.locator(`button:has-text("SIGN UP")`).click(); await this.projectsPage.waitToBeRendered(); } }