Enhance E2E Tests and Configuration (#358)
* Enhance E2E Tests and Configuration - Updated `.gitignore` to exclude `.auth/` directory for cleaner test environment. - Added `test:fast` script in `package.json` for faster Playwright test execution. - Configured Playwright to include a setup project for initializing tests. - Introduced `AUTH_STATES` utility for managing authentication states in tests. - Created `auth.setup.ts` for user authentication tests, ensuring proper login flows. - Refactored various test files to utilize the new authentication state management, improving test reliability and maintainability. - Adjusted team and user billing tests to streamline setup and enhance clarity. - Refactored some dialogs
This commit is contained in:
committed by
GitHub
parent
f157cc7f3e
commit
02e2502dcc
@@ -1,17 +1,11 @@
|
||||
import { Page } from '@playwright/test';
|
||||
import { AuthPageObject } from '../authentication/auth.po';
|
||||
|
||||
import { BillingPageObject } from '../utils/billing.po';
|
||||
|
||||
export class UserBillingPageObject {
|
||||
private readonly auth: AuthPageObject;
|
||||
public readonly billing: BillingPageObject;
|
||||
|
||||
constructor(page: Page) {
|
||||
this.auth = new AuthPageObject(page);
|
||||
constructor(private readonly page: Page) {
|
||||
this.billing = new BillingPageObject(page);
|
||||
}
|
||||
|
||||
async setup() {
|
||||
await this.auth.signUpFlow('/home/billing');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,25 @@
|
||||
import { Page, expect, test } from '@playwright/test';
|
||||
import { expect, test } from '@playwright/test';
|
||||
|
||||
import { AuthPageObject } from '../authentication/auth.po';
|
||||
import { UserBillingPageObject } from './user-billing.po';
|
||||
|
||||
test.describe('User Billing', () => {
|
||||
let page: Page;
|
||||
let po: UserBillingPageObject;
|
||||
|
||||
test.beforeAll(async ({ browser }) => {
|
||||
page = await browser.newPage();
|
||||
po = new UserBillingPageObject(page);
|
||||
|
||||
await po.setup();
|
||||
});
|
||||
|
||||
test('user can subscribe to a plan', async ({ page }) => {
|
||||
const po = new UserBillingPageObject(page);
|
||||
const auth = new AuthPageObject(page);
|
||||
|
||||
const email = auth.createRandomEmail();
|
||||
|
||||
await auth.bootstrapUser({
|
||||
email,
|
||||
name: 'Test Billing User',
|
||||
});
|
||||
|
||||
await auth.loginAsUser({
|
||||
email,
|
||||
next: '/home/billing',
|
||||
});
|
||||
|
||||
await po.billing.selectPlan(0);
|
||||
await po.billing.proceedToCheckout();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user