diff --git a/apps/web-client/e2e/settings.spec.ts b/apps/web-client/e2e/settings.spec.ts new file mode 100644 index 00000000..d4ae3f90 --- /dev/null +++ b/apps/web-client/e2e/settings.spec.ts @@ -0,0 +1,38 @@ +import { test, expect } from '@playwright/test'; + +/** + * EN: E2E tests for settings pages. + * VI: E2E tests cho các trang settings. + */ +test.describe('Settings', () => { + test.beforeEach(async ({ page }) => { + // EN: Seed persisted auth state before app hydration. + // VI: Seed trạng thái auth đã persist trước khi app hydrate. + await page.addInitScript(() => { + localStorage.setItem( + 'auth-storage', + JSON.stringify({ + state: { + user: { + id: '9d7bb2f8-4a68-4aa4-9b73-530a06039ee3', + email: 'tester@goodgo.dev', + }, + isAuthenticated: true, + }, + version: 0, + }) + ); + }); + }); + + test('should render profile settings page', async ({ page }) => { + await page.goto('/settings/profile'); + await expect(page.getByRole('heading', { level: 2, name: 'Profile' })).toBeVisible(); + }); + + test('should render api keys settings page', async ({ page }) => { + await page.goto('/settings/api-keys'); + await expect(page.getByRole('heading', { level: 2, name: 'API Keys' })).toBeVisible(); + await expect(page.getByRole('button', { name: /Create API Key/i }).first()).toBeVisible(); + }); +});