import { test, expect } from '@playwright/test'; test.describe('Welcome page', () => { test.beforeEach(async ({ page }) => { await page.route('**/api/review/feed**', (route) => route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify({ code: 200, data: [] }), }), ); await page.goto('/login'); await page.evaluate(() => localStorage.setItem('isLoggedIn', 'true')); await page.goto('/welcome'); await page.waitForSelector('.welcome-page', { timeout: 10_000 }); }); test('shows welcome banner and quick action cards', async ({ page }) => { await expect(page.locator('.page-title')).toContainText('欢迎回来'); await expect(page.locator('.page-subtitle')).toBeVisible(); await expect(page.locator('.quick-card')).toHaveCount(2); }); test('clicking start study navigates to /study', async ({ page }) => { await page.locator('.quick-card').first().locator('button').click(); await expect(page).toHaveURL(/\/study/); }); test('clicking start review navigates to /review', async ({ page }) => { await page.locator('.quick-card').nth(1).locator('button').click(); await expect(page).toHaveURL(/\/review/); }); });