35 lines
1.7 KiB
Markdown
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。遗留:无(复杂规划算法任务卡明确不做)。
|