Files
vscode-workbench/PLANNING/PROGRESS_E-04.md
T

35 lines
1.7 KiB
Markdown

# PROGRESS — E-04 · 三步引导 + 考试倒计时 + 每日目标
- 状态:done
> 日期 2026-09-13 · 范围:只改 `english-drill` 目录(仅新增 tests/e2e 用例 + 注册)
## 现状 vs 差距(接手时)
- 已有:`UserProfile(exam_date/daily_word_target/onboarding_completed/goal_book_id)`、
`GoalsView/OnboardingView`(校验:日期 YYYY-MM-DD、词量 1-200、`days_to_exam=max(0)`)、
`OnboardingPage` 三步页、首页 goal-summary 倒计时条。
- 缺口:E2E 零覆盖。后端/前端实现完整,本轮只补回归。
## 改动(全部在 `C:/Users/12914/Desktop/english-drill/` 内)
1. `tests/e2e/cases_onboarding.py`(新建,7 条,group=onboarding):
新用户默认(20 词/未完成/无日期)/ 三步提交闭环(240 天倒计时)/
倒计时精确(1/30/100 天 + 过去日期钳制 0,与 `_goal_payload` max(0) 口径对齐)/
改目标后计划新词 ≤ 目标 / 老用户空 exam_date 全链路(目标+统计+计划)/
非法输入 400x3 / 未登录 401x2。
2. `tests/e2e/run_e2e.py`:注册 `cases_onboarding`。
## 口径校准(诚实记录)
- 过去日期倒计时:初版用例断言 `<= 0`,跑前核对后端为 `max(0, days)`,已改断言为 `== 0`。
- “修改目标后计划随之变化”:计划接口返回结构为 `cards_new/cards` 混合,用例取三键和并断言 `≤ 目标`。
## 验证
```bash
python "C:/.../english-drill/tests/e2e/run_e2e.py" -k onboarding
# 合计 7 用例 | 通过 7 | 断言失败 0 | 异常 0
python "C:/.../english-drill/tests/e2e/run_e2e.py"
# 合计 124 用例 | 通过 124 | 断言失败 0 | 异常 0(无回归)
```
## 状态
done。遗留:无(复杂规划算法任务卡明确不做)。