Files
lpt-fe/e2e/welcome.spec.ts

35 lines
1.2 KiB
TypeScript

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/);
});
});