import { expect, test } from '@playwright/test'; test.describe('Profile Page', () => { test.beforeEach(async ({ page }) => { // Navigate to profile page await page.goto('/dashboard/profile'); }); test('should display profile page', async ({ page }) => { await expect(page.locator('h1')).toContainText('Profile'); }); test('should display profile form', async ({ page }) => { await expect(page.locator('text=Profile Information')).toBeVisible(); await expect(page.locator('input#fullName')).toBeVisible(); await expect(page.locator('input#avatarUrl')).toBeVisible(); }); test('should display password change form', async ({ page }) => { await expect(page.locator('text=Change Password')).toBeVisible(); await expect(page.locator('input#currentPassword')).toBeVisible(); await expect(page.locator('input#newPassword')).toBeVisible(); await expect(page.locator('input#confirmPassword')).toBeVisible(); }); test('should display account information', async ({ page }) => { await expect(page.locator('text=Account Information')).toBeVisible(); }); test('should update profile information', async ({ page }) => { const fullName = 'Test User Updated'; await page.fill('input#fullName', fullName); await page.click('button:has-text("Save Changes")'); // Wait for success message await expect(page.locator('text=Profile updated successfully')).toBeVisible(); }); test('should change password', async ({ page }) => { await page.fill('input#currentPassword', 'OldPassword123!'); await page.fill('input#newPassword', 'NewPassword123!'); await page.fill('input#confirmPassword', 'NewPassword123!'); await page.click('button:has-text("Change Password")'); // Wait for success message await expect(page.locator('text=Password changed successfully')).toBeVisible(); }); test('should show error when passwords do not match', async ({ page }) => { await page.fill('input#currentPassword', 'OldPassword123!'); await page.fill('input#newPassword', 'NewPassword123!'); await page.fill('input#confirmPassword', 'DifferentPassword123!'); await page.click('button:has-text("Change Password")'); // Wait for error message await expect(page.locator('text=Passwords do not match')).toBeVisible(); }); });