From 969aa81ea2d93cc20365ac4a64c31fdb382a21de Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 23 Feb 2026 13:08:45 +0000 Subject: [PATCH] test: add settings e2e baseline for profile and api keys Co-authored-by: Velik --- apps/web-client/e2e/settings.spec.ts | 38 ++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 apps/web-client/e2e/settings.spec.ts 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(); + }); +});