|
1 | 1 | import { test, expect } from '@playwright/test'; |
2 | 2 |
|
3 | 3 | test.describe('User Profile', () => { |
4 | | - test.beforeEach(async ({ page }) => { |
5 | | - // Login as bob (regular user) |
6 | | - await page.goto('/login'); |
7 | | - await page.getByTestId('email-input').fill('bob@example.com'); |
8 | | - await page.getByTestId('password-input').fill('password123'); |
| 4 | + let testUser: { email: string; password: string } | null = null; |
| 5 | + |
| 6 | + test.beforeEach(async ({ page, context }) => { |
| 7 | + // Clear storage before each test for isolation |
| 8 | + await context.clearCookies(); |
| 9 | + |
| 10 | + // Create a dedicated test user for profile tests to avoid modifying seeded users |
| 11 | + const timestamp = Date.now(); |
| 12 | + const email = `profiletest${timestamp}@example.com`; |
| 13 | + const password = 'password123'; |
| 14 | + |
| 15 | + // Create user via signup |
| 16 | + await page.goto('/signup'); |
| 17 | + await page.getByTestId('email-input').fill(email); |
| 18 | + await page.getByTestId('password-input').fill(password); |
| 19 | + await page.getByTestId('confirm-password-input').fill(password); |
9 | 20 | await page.getByTestId('submit-button').click(); |
| 21 | + await expect(page).toHaveURL('/login', { timeout: 5000 }); |
10 | 22 |
|
11 | | - // Wait for redirect to dashboard |
| 23 | + // Login with the new user |
| 24 | + await page.getByTestId('email-input').fill(email); |
| 25 | + await page.getByTestId('password-input').fill(password); |
| 26 | + await page.getByTestId('submit-button').click(); |
12 | 27 | await expect(page).toHaveURL('/dashboard', { timeout: 5000 }); |
| 28 | + |
| 29 | + testUser = { email, password }; |
13 | 30 | }); |
14 | 31 |
|
15 | 32 | // Helper to create a dedicated user for password update tests |
@@ -60,7 +77,9 @@ test.describe('User Profile', () => { |
60 | 77 | const emailInput = page.getByTestId('email-input'); |
61 | 78 | await expect(emailInput).toBeVisible(); |
62 | 79 | await expect(emailInput).toBeDisabled(); |
63 | | - await expect(emailInput).toHaveValue('bob@example.com'); |
| 80 | + if (testUser) { |
| 81 | + await expect(emailInput).toHaveValue(testUser.email); |
| 82 | + } |
64 | 83 | }); |
65 | 84 |
|
66 | 85 | test('should update username and full name', async ({ page }) => { |
|
0 commit comments