feat: complete review workflow UI

This commit is contained in:
2026-06-20 09:20:24 +08:00
parent 45ac0a98d1
commit 8ed1d45ae1
9 changed files with 629 additions and 95 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ test.describe('Auth guard', () => {
});
test('allows access to /welcome when authenticated', async ({ page }) => {
await page.route('**/api/review/feed', (route) =>
await page.route('**/api/review/feed**', (route) =>
route.fulfill({
status: 200,
contentType: 'application/json',
+19 -21
View File
@@ -2,31 +2,29 @@ import { test, expect } from '@playwright/test';
const mockTasksData = {
code: 200,
data: {
records: [
{
taskNum: 'T001',
taskName: '学习 Vue3',
reportCount: 3,
fragmentCount: 5,
effectiveTime: '2h 30m',
},
{
taskNum: 'T002',
taskName: '学习 TypeScript',
reportCount: 1,
fragmentCount: 2,
effectiveTime: '1h 15m',
},
],
},
data: [
{
taskNum: 'T001',
taskName: '学习 Vue3',
reportCount: 3,
fragmentCount: 5,
effectiveTime: 9000,
},
{
taskNum: 'T002',
taskName: '学习 TypeScript',
reportCount: 1,
fragmentCount: 2,
effectiveTime: 4500,
},
],
};
const mockTasksEmpty = { code: 200, data: { records: [] } };
const mockTasksEmpty = { code: 200, data: [] };
const mockFeed = { code: 200, data: [] };
test.describe('Review page', () => {
test.beforeEach(async ({ page }) => {
await page.route('**/api/tasks**', (route) =>
await page.route('**/api/review/tasks**', (route) =>
route.fulfill({
status: 200,
contentType: 'application/json',
@@ -52,7 +50,7 @@ test.describe('Review page', () => {
});
test('shows empty state when no tasks', async ({ page }) => {
await page.route('**/api/tasks**', (route) =>
await page.route('**/api/review/tasks**', (route) =>
route.fulfill({
status: 200,
contentType: 'application/json',
+1 -1
View File
@@ -2,7 +2,7 @@ import { test, expect } from '@playwright/test';
test.describe('Welcome page', () => {
test.beforeEach(async ({ page }) => {
await page.route('**/api/review/feed', (route) =>
await page.route('**/api/review/feed**', (route) =>
route.fulfill({
status: 200,
contentType: 'application/json',