From 9c0dc3a31ff2d992d3e7ac04123d489c0fd48f17 Mon Sep 17 00:00:00 2001 From: bboysoul Date: Sat, 19 Sep 2026 13:21:57 +0800 Subject: [PATCH] test: add frontend visual regression coverage --- frontend/e2e/visual-regression.spec.ts | 45 ++++++++++++++++++ .../inbox-mobile-390.png | Bin 0 -> 32602 bytes .../task-composer-mobile-390.png | Bin 0 -> 41335 bytes frontend/package.json | 2 +- frontend/playwright.config.ts | 10 +++- 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 frontend/e2e/visual-regression.spec.ts create mode 100644 frontend/e2e/visual-regression.spec.ts-snapshots/inbox-mobile-390.png create mode 100644 frontend/e2e/visual-regression.spec.ts-snapshots/task-composer-mobile-390.png diff --git a/frontend/e2e/visual-regression.spec.ts b/frontend/e2e/visual-regression.spec.ts new file mode 100644 index 0000000..db1a154 --- /dev/null +++ b/frontend/e2e/visual-regression.spec.ts @@ -0,0 +1,45 @@ +import type { APIRequestContext, Page } from '@playwright/test' +import { expect, test } from './fixtures' + +async function csrf(request: APIRequestContext) { + const state = await request.storageState() + return state.cookies.find(cookie => cookie.name === 'dodo_csrf')?.value ?? '' +} + +async function createTask(request: APIRequestContext, baseURL: string, title: string, listId: string) { + const response = await request.post('/api/v1/tasks', { + data: { title, list_id: listId }, + headers: { 'x-csrf-token': await csrf(request), origin: baseURL }, + }) + expect(response.ok(), await response.text()).toBeTruthy() +} + +async function openInbox(page: Page) { + if ((await page.viewportSize())!.width <= 930) { + await page.locator('.topbar').getByRole('button', { name: /展开菜单|收起菜单/ }).click() + } + await page.locator('.sidebar').getByRole('button', { name: '收集箱', exact: true }).click() +} + +test('inbox and task composer match approved visuals', async ({ page, request, baseURL }, testInfo) => { + test.skip(testInfo.project.name !== 'mobile-390', 'approved visual baselines are maintained for mobile-390 only') + await page.clock.install({ time: new Date('2026-09-19T05:00:00.000Z') }) + + const bootstrap = await request.get('/api/v1/bootstrap') + expect(bootstrap.ok()).toBeTruthy() + const inbox = (await bootstrap.json()).lists.find((item: { is_inbox: boolean }) => item.is_inbox) + expect(inbox).toBeTruthy() + + await createTask(request, baseURL!, '整理本周工作记录', inbox.id) + await createTask(request, baseURL!, '检查 Dodo 备份', inbox.id) + await createTask(request, baseURL!, '周末买水果和牛奶', inbox.id) + + await page.goto('/') + await openInbox(page) + await expect(page.locator('.task-row')).toHaveCount(3) + await expect(page).toHaveScreenshot('inbox.png', { fullPage: true }) + + await page.getByRole('button', { name: '添加任务' }).click() + await expect(page.getByRole('dialog', { name: /添加任务/ })).toBeVisible() + await expect(page).toHaveScreenshot('task-composer.png', { fullPage: true }) +}) diff --git a/frontend/e2e/visual-regression.spec.ts-snapshots/inbox-mobile-390.png b/frontend/e2e/visual-regression.spec.ts-snapshots/inbox-mobile-390.png new file mode 100644 index 0000000000000000000000000000000000000000..79b60ef20d2c48a40fc0ce5e0b21e28a99c487ee GIT binary patch literal 32602 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%0AW^K7rxNJP*v-f3CrPIJhPk~Z8pZi9@ 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 Gp8f|8InEvc literal 0 HcmV?d00001 diff --git a/frontend/package.json b/frontend/package.json index 44ab839..eeaeec0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1 +1 @@ -{"name":"dodo-frontend","private":true,"version":"0.1.0","type":"module","packageManager":"pnpm@9.15.9","scripts":{"dev":"vite --host 0.0.0.0","build":"vue-tsc -b && vite build","test":"vitest run --exclude 'e2e/**'","test:e2e:mobile":"node scripts/playwright-mobile.mjs"},"dependencies":{"@vitejs/plugin-vue":"latest","class-variance-authority":"latest","clsx":"latest","lucide-vue-next":"^0.468.0","markdown-it":"^15.0.2","markdown-it-task-lists":"^2.1.1","reka-ui":"latest","tailwind-merge":"latest","vue":"latest","vue-router":"latest"},"devDependencies":{"@playwright/test":"^1.63.0","@tailwindcss/vite":"latest","@types/markdown-it":"^14.2.0","@types/node":"latest","fflate":"^0.8.3","jsdom":"^30.0.1","tailwindcss":"latest","typescript":"^5.7.2","vite":"latest","vitest":"latest","vue-tsc":"latest"},"pnpm":{"onlyBuiltDependencies":["vue-demi"]}} \ No newline at end of file +{"name":"dodo-frontend","private":true,"version":"0.1.0","type":"module","packageManager":"pnpm@9.15.9","scripts":{"dev":"vite --host 0.0.0.0","build":"vue-tsc -b && vite build","test":"vitest run --exclude 'e2e/**'","test:e2e:mobile":"node scripts/playwright-mobile.mjs","test:e2e:visual":"DODO_E2E_PROJECT=mobile-390 playwright test e2e/visual-regression.spec.ts --project mobile-390"},"dependencies":{"@vitejs/plugin-vue":"latest","class-variance-authority":"latest","clsx":"latest","lucide-vue-next":"^0.468.0","markdown-it":"^15.0.2","markdown-it-task-lists":"^2.1.1","reka-ui":"latest","tailwind-merge":"latest","vue":"latest","vue-router":"latest"},"devDependencies":{"@playwright/test":"^1.63.0","@tailwindcss/vite":"latest","@types/markdown-it":"^14.2.0","@types/node":"latest","fflate":"^0.8.3","jsdom":"^30.0.1","tailwindcss":"latest","typescript":"^5.7.2","vite":"latest","vitest":"latest","vue-tsc":"latest"},"pnpm":{"onlyBuiltDependencies":["vue-demi"]}} \ No newline at end of file diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts index d94b85e..58cdc5e 100644 --- a/frontend/playwright.config.ts +++ b/frontend/playwright.config.ts @@ -25,7 +25,15 @@ export default defineConfig({ fullyParallel: false, workers: 1, timeout: 45_000, - expect: { timeout: 8_000 }, + expect: { + timeout: 8_000, + toHaveScreenshot: { + animations: 'disabled', + caret: 'hide', + maxDiffPixelRatio: 0.001, + }, + }, + snapshotPathTemplate: '{testDir}/{testFilePath}-snapshots/{arg}-{projectName}{ext}', outputDir: path.join(runtimeRoot, 'test-results'), reporter: [['line'], ['html', { outputFolder: path.join(runtimeRoot, 'report'), open: 'never' }]], globalSetup: './e2e/global-setup.ts',