|
|
|
// 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();
|
|
|
|
}
|
|
|
|
}
|