Files
myeasycms-v2/apps/e2e/tests/authentication/auth.po.ts
giancarlo b388605317 Remove unnecessary console.log in auth tests
The redundant console.log statement that was previously used for debugging, was removed from the auth.po.ts file of authentication tests. This change keeps the code cleaner and prevents unnecessary output during testing.
2024-05-04 00:00:24 +07:00

84 lines
2.0 KiB
TypeScript

import { Page, expect } 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');
}
goToSignUp() {
return this.page.goto('/auth/sign-up');
}
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.waitForTimeout(1000);
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.waitForTimeout(1000);
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,
params: {
deleteAfter: boolean;
} = {
deleteAfter: true,
},
) {
return expect(async () => {
const res = await this.mailbox.visitMailbox(email, params);
expect(res).not.toBeNull();
}).toPass();
}
createRandomEmail() {
const value = Math.random() * 10000000000;
return `${value.toFixed(0)}@makerkit.dev`;
}
async signUpFlow(path: string) {
const email = this.createRandomEmail();
await this.page.goto(`/auth/sign-up?next=${path}`);
await this.signUp({
email,
password: 'password',
repeatPassword: 'password',
});
await this.visitConfirmEmailLink(email);
}
}