Updated end-to-end tests to adjust for changes in user and team billing. Changes include adding await for URL on user-billing.spec.ts and adjusting selectors in billing.po.ts and team-accounts.po.ts. Additionally, we updated test parameters on team-billing.spec.ts.
80 lines
2.3 KiB
TypeScript
80 lines
2.3 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"][data-value="${teamSlug}"]`);
|
|
}
|
|
|
|
async selectAccount(teamName: string) {
|
|
await this.page.click(`[data-test="account-selector-team"][data-name="${teamName}"]`);
|
|
}
|
|
|
|
async getTeams() {
|
|
await this.openAccountsSelector();
|
|
|
|
return this.page.locator('[data-test="account-selector-team"]');
|
|
}
|
|
|
|
goToSettings() {
|
|
return this.page.locator('a', {
|
|
hasText: 'Settings',
|
|
}).click();
|
|
}
|
|
|
|
goToBilling() {
|
|
return this.page.locator('a', {
|
|
hasText: 'Billing',
|
|
}).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 };
|
|
}
|
|
} |