Files
myeasycms-v2/apps/e2e/tests/team-accounts/team-accounts.po.ts
giancarlo 21fba33462 Add account deletion process and improve tests
The commit introduces a message to indicate the account deletion process. It also enhances the tests by reducing code redundancy in the e2e tests, creating a more random name for team accounts, and improving the navigation process after account deletions. The commit also includes code cleanup tasks, such as the removal of unused imports.
2024-04-12 21:30:13 +08:00

64 lines
1.9 KiB
TypeScript

import { expect, Page } from '@playwright/test';
import { AuthPageObject } from '../authentication/auth.po';
export class TeamAccountsPageObject {
private readonly page: Page;
public auth: AuthPageObject;
constructor(page: Page) {
this.page = page;
this.auth = new AuthPageObject(page);
}
async setup(params = this.createTeamName()) {
await this.auth.signUpFlow('/home');
await this.createTeam(params);
}
async getTeamFromSelector(teamSlug: string) {
await this.openAccountsSelector();
return this.page.locator(`[data-test="account-selector-team-${teamSlug}"]`);
}
async goToSettings() {
await this.page.locator('a', {
hasText: 'Settings',
}).click();
}
async openAccountsSelector() {
await this.page.click('[data-test="account-selector-trigger"]');
}
async createTeam({ teamName, slug } = this.createTeamName()) {
await this.openAccountsSelector();
await this.page.click('[data-test="create-team-account-trigger"]');
await this.page.fill('[data-test="create-team-form"] input', teamName);
await this.page.click('[data-test="create-team-form"] button:last-child');
}
async updateName(name: string) {
await this.page.fill('[data-test="update-team-account-name-form"] input', name);
await this.page.click('[data-test="update-team-account-name-form"] button');
}
async deleteAccount(teamName: string) {
await this.page.click('[data-test="delete-team-trigger"]');
expect(await this.page.locator('[data-test="delete-team-form-confirm-input"]').isVisible()).toBeTruthy();
await this.page.fill('[data-test="delete-team-form-confirm-input"]', teamName);
await this.page.click('[data-test="delete-team-form-confirm-button"]');
}
createTeamName() {
const random = (Math.random() * 100000000).toFixed(0);
const teamName = `Team-Name-${random}`;
const slug = `team-name-${random}`;
return { teamName, slug };
}
}