Renamed several components related to account settings and updated corresponding data-test selectors for more clarity. Adjusted e2e tests to reflect these changes and added tests for new functionalities, like changing password and deleting account. In addition, generator description in monorepo configuration was simplified. Minor changes were also made to e2e test utilities for better error handling.
77 lines
1.8 KiB
TypeScript
77 lines
1.8 KiB
TypeScript
import { Page } from '@playwright/test';
|
|
import { Mailbox } from '../utils/mailbox';
|
|
|
|
export class AuthPageObject {
|
|
private readonly page: Page;
|
|
private readonly mailbox: Mailbox;
|
|
|
|
constructor(page: Page) {
|
|
this.page = page;
|
|
this.mailbox = new Mailbox(page);
|
|
}
|
|
|
|
goToSignIn() {
|
|
return this.page.goto('/auth/sign-in', {
|
|
waitUntil: 'networkidle',
|
|
});
|
|
}
|
|
|
|
goToSignUp() {
|
|
return this.page.goto('/auth/sign-up', {
|
|
waitUntil: 'networkidle',
|
|
});
|
|
}
|
|
|
|
async signOut() {
|
|
await this.page.click('[data-test="account-dropdown-trigger"]');
|
|
await this.page.click('[data-test="account-dropdown-sign-out"]');
|
|
}
|
|
|
|
async signIn(params: {
|
|
email: string,
|
|
password: string
|
|
}) {
|
|
await this.page.fill('input[name="email"]', params.email);
|
|
await this.page.fill('input[name="password"]', params.password);
|
|
await this.page.click('button[type="submit"]');
|
|
}
|
|
|
|
async signUp(params: {
|
|
email: string,
|
|
password: string,
|
|
repeatPassword: string
|
|
}) {
|
|
await this.page.fill('input[name="email"]', params.email);
|
|
await this.page.fill('input[name="password"]', params.password);
|
|
await this.page.fill('input[name="repeatPassword"]', params.repeatPassword);
|
|
await this.page.click('button[type="submit"]');
|
|
}
|
|
|
|
async visitConfirmEmailLink(email: string) {
|
|
await this.page.waitForTimeout(300);
|
|
|
|
await this.mailbox.visitMailbox(email);
|
|
}
|
|
|
|
createRandomEmail() {
|
|
const value = Math.random() * 1000;
|
|
|
|
return `${value.toFixed(0)}@makerkit.dev`;
|
|
}
|
|
|
|
async signUpFlow(path: string) {
|
|
const email = this.createRandomEmail();
|
|
|
|
await this.page.goto(`/auth/sign-up?next=${path}`, {
|
|
waitUntil: 'networkidle',
|
|
});
|
|
|
|
await this.signUp({
|
|
email,
|
|
password: 'password',
|
|
repeatPassword: 'password',
|
|
});
|
|
|
|
await this.visitConfirmEmailLink(email);
|
|
}
|
|
} |