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:
Giancarlo Buomprisco
2025-09-21 12:28:42 +08:00
committed by GitHub
parent f157cc7f3e
commit 02e2502dcc
27 changed files with 661 additions and 407 deletions

View File

@@ -0,0 +1,10 @@
import { join } from 'node:path';
import { cwd } from 'node:process';
export const AUTH_STATES = {
TEST_USER: join(cwd(), '.auth/test@makerkit.dev.json'),
OWNER_USER: join(cwd(), '.auth/owner@makerkit.dev.json'),
SUPER_ADMIN: join(cwd(), '.auth/super-admin@makerkit.dev.json'),
} as const;
export type AuthState = keyof typeof AUTH_STATES;

View File

@@ -17,13 +17,15 @@ export class StripePageObject {
}).toPass();
}
async fillForm(params: {
billingName?: string;
cardNumber?: string;
expiry?: string;
cvc?: string;
billingCountry?: string;
} = {}) {
async fillForm(
params: {
billingName?: string;
cardNumber?: string;
expiry?: string;
cvc?: string;
billingCountry?: string;
} = {},
) {
const billingName = this.billingName();
const cardNumber = this.cardNumber();
const expiry = this.expiry();
@@ -38,7 +40,9 @@ export class StripePageObject {
}
submitForm() {
return this.getStripeCheckoutIframe().getByTestId('hosted-payment-submit-button').click();
return this.getStripeCheckoutIframe()
.locator('[data-testid="hosted-payment-submit-button"]')
.click();
}
cardNumber() {
@@ -60,4 +64,4 @@ export class StripePageObject {
billingCountry() {
return this.getStripeCheckoutIframe().locator('#billingCountry');
}
}
}