* 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
59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { AuthPageObject } from './auth.po';
|
|
|
|
const newPassword = (Math.random() * 10000).toString();
|
|
|
|
test.describe('Password Reset Flow', () => {
|
|
test('will reset the password and sign in with new one', async ({ page }) => {
|
|
const auth = new AuthPageObject(page);
|
|
|
|
let email = '';
|
|
|
|
await expect(async () => {
|
|
email = auth.createRandomEmail();
|
|
|
|
auth.bootstrapUser({
|
|
email,
|
|
password: 'password',
|
|
name: 'Test User',
|
|
});
|
|
|
|
await page.goto('/auth/password-reset');
|
|
|
|
await page.fill('[name="email"]', email);
|
|
await page.click('[type="submit"]');
|
|
|
|
await auth.visitConfirmEmailLink(email, {
|
|
deleteAfter: true,
|
|
subject: 'Reset your password',
|
|
});
|
|
|
|
await page.waitForURL('/update-password', {
|
|
timeout: 1000,
|
|
});
|
|
|
|
await auth.updatePassword(newPassword);
|
|
|
|
await page
|
|
.locator('a', {
|
|
hasText: 'Back to Home Page',
|
|
})
|
|
.click();
|
|
|
|
await page.waitForURL('/home');
|
|
}).toPass();
|
|
|
|
await auth.signOut();
|
|
|
|
await page.waitForURL('/');
|
|
await page.goto('/auth/sign-in');
|
|
|
|
await auth.loginAsUser({
|
|
email,
|
|
password: newPassword,
|
|
next: '/home',
|
|
});
|
|
});
|
|
});
|