authentication.page.ts•1.57 kB
import { BasePage } from './base';
import { faker } from '@faker-js/faker';
export class AuthenticationPage extends BasePage {
url = `/sign-in`;
signUpUrl = `/sign-up`;
async signIn(params: { email: string; password: string }) {
await this.page.goto(this.url);
const emailField = this.page.getByTestId('sign-in-email');
await emailField.click();
await emailField.fill(params.email);
const passwordField = this.page.getByTestId('sign-in-password');
await passwordField.click();
await passwordField.fill(params.password);
await this.page.getByTestId('sign-in-button').click();
}
async signUp() {
await this.page.goto(this.signUpUrl);
const firstNameField = this.page.getByTestId('sign-up-first-name');
await firstNameField.click();
await firstNameField.fill('Bugs');
await firstNameField.press('Tab');
const lastNameField = this.page.getByTestId('sign-up-last-name');
await lastNameField.click();
await lastNameField.fill('Bunny');
await lastNameField.press('Tab');
const emailField = this.page.getByTestId('sign-up-email');
await emailField.click();
await emailField.fill(faker.internet.email());
await emailField.press('Tab');
const passwordField = this.page.getByTestId('sign-up-password');
await passwordField.click();
await passwordField.fill(faker.internet.password({
pattern: /[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?a-zA-Z0-9]/,
length: 12,
prefix: '0'
}));
await this.page.getByTestId('sign-up-button').click();
}
}