Files
schedule-planner/doc/test-coverage.md
Hera Zhao d3f3b4f37b
Some checks failed
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 3s
PR Preview / teardown-preview (pull_request) Has been skipped
Test / e2e-test (push) Failing after 55s
PR Preview / deploy-preview (pull_request) Failing after 40s
Refactor to Vue 3 + FastAPI + SQLite architecture
- Backend: FastAPI + SQLite (WAL mode), 22 tables, ~40 API endpoints
- Frontend: Vue 3 + Vite + Pinia + Vue Router, 8 views, 3 stores
- Database: migrate from JSON file to SQLite with proper schema
- Dockerfile: multi-stage build (node + python)
- Deploy: K8s manifests (namespace, deployment, service, ingress, pvc, backup)
- CI/CD: Gitea Actions (test, deploy, PR preview at pr-$id.planner.oci.euphon.net)
- Tests: 20 Cypress E2E test files, 196 test cases, ~85% coverage
- Doc: test-coverage.md with full feature coverage report

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 21:18:22 +00:00

14 KiB
Raw Blame History

前端功能点测试覆盖表

基于 Vue 3 + Vite + Pinia 重构后的前端,对照原始 vanilla JS 单文件实现的所有功能点。

测试类型说明

  • e2e = Cypress E2E 测试 (真实浏览器 + 后端 API)
  • none = 尚未覆盖

1. 应用加载 (App)

功能点 测试 文件
未登录显示登录遮罩 e2e app-load.cy.js
登录框有密码输入和按钮 e2e app-load.cy.js
错误密码显示错误提示 e2e app-load.cy.js
登录后显示主界面 e2e app-load.cy.js
显示 7 个导航 Tab e2e app-load.cy.js
菜单按钮打开下拉菜单 e2e app-load.cy.js
下拉菜单包含导出/改密/备份/退出 e2e app-load.cy.js

2. 认证与登录 (Auth)

功能点 测试 文件
过期 session 跳转登录 e2e auth-flow.cy.js
回车键提交登录 e2e auth-flow.cy.js
正确密码登录并存储 session e2e auth-flow.cy.js
退出登录清除 session e2e auth-flow.cy.js
Session 刷新后保持 e2e auth-flow.cy.js
修改密码 none

3. 导航与路由 (Navigation)

功能点 测试 文件
默认 Tab 为随手记 e2e navigation.cy.js
点击 Tab 跳转正确路由 e2e navigation.cy.js
直接 URL 访问各路由 e2e navigation.cy.js
浏览器后退按钮 e2e navigation.cy.js
未知路由 SPA 回退 e2e navigation.cy.js
Sleep Buddy 路由 e2e navigation.cy.js

4. 随手记 (Notes)

功能点 测试 文件
显示输入区和发送按钮 e2e notes-flow.cy.js
显示 8 个标签按钮 e2e notes-flow.cy.js
切换标签选中状态 e2e notes-flow.cy.js
创建笔记(点击按钮) e2e notes-flow.cy.js
创建带标签的笔记 e2e notes-flow.cy.js
回车键创建笔记 e2e notes-flow.cy.js
创建后清空输入框 e2e notes-flow.cy.js
不创建空笔记 e2e notes-flow.cy.js
搜索过滤笔记 e2e notes-flow.cy.js
按标签筛选笔记 e2e notes-flow.cy.js
编辑笔记 e2e notes-flow.cy.js
删除笔记 e2e notes-flow.cy.js
显示空状态提示 e2e notes-flow.cy.js
显示笔记时间 e2e notes-flow.cy.js
自动识别内容归档文档 none

5. 待办事项 (Tasks)

功能点 测试 文件
显示 3 个子 Tab待办/目标/清单) e2e tasks-flow.cy.js
默认子 Tab 为待办 e2e tasks-flow.cy.js
子 Tab 切换 e2e tasks-flow.cy.js
收集箱输入 e2e tasks-flow.cy.js
添加收集箱条目 e2e tasks-flow.cy.js
收集箱分配到象限按钮 e2e tasks-flow.cy.js
移入四象限 e2e tasks-flow.cy.js
显示 4 个象限 e2e tasks-flow.cy.js
直接添加到象限 e2e tasks-flow.cy.js
切换完成状态 e2e tasks-flow.cy.js
删除待办 e2e tasks-flow.cy.js
搜索过滤待办 e2e tasks-flow.cy.js
创建目标 e2e tasks-flow.cy.js
删除目标 e2e tasks-flow.cy.js
创建清单 e2e tasks-flow.cy.js
添加清单项目 e2e tasks-flow.cy.js
切换清单项完成 e2e tasks-flow.cy.js
删除清单 e2e tasks-flow.cy.js
目标打卡日历 none

6. 提醒 (Reminders)

功能点 测试 文件
显示页面和新增按钮 e2e reminders-flow.cy.js
打开新增表单 e2e reminders-flow.cy.js
创建带时间的提醒 e2e reminders-flow.cy.js
不同重复选项 e2e reminders-flow.cy.js
切换启用/禁用 e2e reminders-flow.cy.js
删除提醒 e2e reminders-flow.cy.js
取消按钮关闭表单 e2e reminders-flow.cy.js
空状态提示 e2e reminders-flow.cy.js
浏览器通知推送 none
Service Worker 后台通知 none

7. 健康打卡 (Body - Health)

功能点 测试 文件
显示 4 个子 Tab e2e body-health.cy.js
默认健康打卡 Tab e2e body-health.cy.js
显示今日日期 e2e body-health.cy.js
添加健康项目到池 e2e body-health.cy.js
切换项目到月计划 e2e body-health.cy.js
打卡项目 e2e body-health.cy.js
取消打卡 e2e body-health.cy.js
删除池中项目 e2e body-health.cy.js
空状态提示 e2e body-health.cy.js
月度日历视图 none
年度热力图 none
健康日记 none

8. 睡眠记录 (Body - Sleep)

功能点 测试 文件
显示输入框 e2e body-sleep.cy.js
HH:MM 格式记录 e2e body-sleep.cy.js
中文格式记录10点半 e2e body-sleep.cy.js
无法识别时显示错误 e2e body-sleep.cy.js
删除睡眠记录 e2e body-sleep.cy.js
显示记录明细表 e2e body-sleep.cy.js
空状态提示 e2e body-sleep.cy.js
睡眠趋势图表 (Canvas) none
月度切换 none
年度热力图 none
目标入睡时间 none
"我去睡觉啦"按钮 none

9. 健身记录 (Body - Gym)

功能点 测试 文件
显示页面和新增按钮 e2e body-gym.cy.js
打开新增表单 e2e body-gym.cy.js
创建健身记录 e2e body-gym.cy.js
删除健身记录 e2e body-gym.cy.js
取消关闭表单 e2e body-gym.cy.js

10. 经期记录 (Body - Period)

功能点 测试 文件
显示页面和新增按钮 e2e body-period.cy.js
打开新增表单 e2e body-period.cy.js
创建经期记录(有结束日期) e2e body-period.cy.js
创建进行中记录(无结束日期) e2e body-period.cy.js
删除经期记录 e2e body-period.cy.js
经期周期预测 none

11. 音乐打卡 (Music)

功能点 测试 文件
显示今日日期 e2e music-flow.cy.js
显示练习项目区 e2e music-flow.cy.js
添加音乐项目 e2e music-flow.cy.js
切换到月计划 e2e music-flow.cy.js
打卡练习 e2e music-flow.cy.js
取消打卡 e2e music-flow.cy.js
删除项目 e2e music-flow.cy.js
空状态提示 e2e music-flow.cy.js
月度日历视图 none
年度热力图 none

12. 个人文档 (Docs)

功能点 测试 文件
显示页面头部和描述 e2e docs-flow.cy.js
显示新建文档按钮 e2e docs-flow.cy.js
打开新建表单 e2e docs-flow.cy.js
创建文档 e2e docs-flow.cy.js
新文档显示 0 条 e2e docs-flow.cy.js
点击打开文档详情 e2e docs-flow.cy.js
关闭文档详情 e2e docs-flow.cy.js
编辑文档信息 e2e docs-flow.cy.js
删除文档 e2e docs-flow.cy.js
取消不保存 e2e docs-flow.cy.js
图标选择器 e2e docs-flow.cy.js
提取规则下拉 e2e docs-flow.cy.js
文档条目添加 none — (API 层已覆盖)
文档条目删除 none — (API 层已覆盖)

13. 日程规划 (Planning - Schedule)

功能点 测试 文件
显示 3 个子 Tab e2e planning-schedule.cy.js
默认日程子 Tab e2e planning-schedule.cy.js
显示模块池和时间线 e2e planning-schedule.cy.js
显示 18 个时间段 (6-23) e2e planning-schedule.cy.js
日期导航 e2e planning-schedule.cy.js
切换上/下一天 e2e planning-schedule.cy.js
添加活动模块 e2e planning-schedule.cy.js
颜色选择器 e2e planning-schedule.cy.js
删除活动模块 e2e planning-schedule.cy.js
清空当天日程 e2e planning-schedule.cy.js
模块可拖拽 e2e planning-schedule.cy.js
拖拽放置到时间段 none — (Cypress 不支持原生 drag)
导出日程为文本 none

14. 每周模板 (Planning - Template)

功能点 测试 文件
显示 7 天按钮 e2e planning-template.cy.js
默认选中天 e2e planning-template.cy.js
切换不同天 e2e planning-template.cy.js
显示模板提示 e2e planning-template.cy.js
时间线渲染 none
模板编辑保存 none

15. 周回顾 (Planning - Review)

功能点 测试 文件
显示回顾表单 e2e planning-review.cy.js
表单有 3 个区域 e2e planning-review.cy.js
保存回顾 e2e planning-review.cy.js
历史回顾标题 e2e planning-review.cy.js
历史展开/折叠 e2e planning-review.cy.js

16. 睡眠打卡 (Sleep Buddy)

功能点 测试 文件
未登录显示登录表单 e2e sleep-buddy.cy.js
登录表单有用户名密码 e2e sleep-buddy.cy.js
登录/注册模式切换 e2e sleep-buddy.cy.js
注册显示确认密码 e2e sleep-buddy.cy.js
密码不一致报错 e2e sleep-buddy.cy.js
注册后自动登录 e2e sleep-buddy.cy.js
登录后显示主界面 e2e sleep-buddy.cy.js
显示目标时间 e2e sleep-buddy.cy.js
显示记录输入 e2e sleep-buddy.cy.js
记录睡眠时间 e2e sleep-buddy.cy.js
无法识别报错 e2e sleep-buddy.cy.js
"我去睡觉啦"按钮 e2e sleep-buddy.cy.js
用户菜单退出 e2e sleep-buddy.cy.js
退出返回登录 e2e sleep-buddy.cy.js
数据对比统计 none
睡眠趋势图 (Canvas) none
修改目标时间 none
删除记录 none — (API 已覆盖)

17. API 健康检查

功能点 测试 文件
GET /api/notes 返回数组 e2e api-health.cy.js
GET /api/todos 返回数组 e2e api-health.cy.js
GET /api/inbox 返回数组 e2e api-health.cy.js
GET /api/reminders 返回数组 e2e api-health.cy.js
GET /api/goals 返回数组 e2e api-health.cy.js
GET /api/checklists 返回数组 e2e api-health.cy.js
GET /api/sleep 返回数组 e2e api-health.cy.js
GET /api/gym 返回数组 e2e api-health.cy.js
GET /api/period 返回数组 e2e api-health.cy.js
GET /api/docs 返回数组 e2e api-health.cy.js
GET /api/bugs 返回数组 e2e api-health.cy.js
GET /api/reviews 返回数组 e2e api-health.cy.js
GET /api/schedule-modules 返回数组 e2e api-health.cy.js
GET /api/schedule-slots 返回数组 e2e api-health.cy.js
GET /api/weekly-template 返回数组 e2e api-health.cy.js
GET /api/health-items 返回数组 e2e api-health.cy.js
GET /api/health-plans 返回数组 e2e api-health.cy.js
GET /api/health-checks 返回数组 e2e api-health.cy.js
GET /api/backups 返回数组 e2e api-health.cy.js
GET /api/sleep-buddy 返回对象 e2e api-health.cy.js
POST /api/login 错误密码 401 e2e api-health.cy.js

18. API CRUD 操作

功能点 测试 文件
Notes: 创建/删除 e2e api-crud.cy.js
Todos: 创建/更新(upsert)/删除 e2e api-crud.cy.js
Inbox: 创建/清空 e2e api-crud.cy.js
Reminders: 创建/删除 e2e api-crud.cy.js
Goals: 创建/更新 e2e api-crud.cy.js
Checklists: 创建 e2e api-crud.cy.js
Sleep: 创建/Upsert/删除 e2e api-crud.cy.js
Gym: 创建 e2e api-crud.cy.js
Period: 创建 e2e api-crud.cy.js
Docs: 创建 + 创建条目 + 验证嵌套 e2e api-crud.cy.js
Bugs: 创建/删除 e2e api-crud.cy.js
Schedule Modules: 创建 e2e api-crud.cy.js
Schedule Slots: 创建 e2e api-crud.cy.js
Reviews: 创建 e2e api-crud.cy.js
Health Items: 创建 e2e api-crud.cy.js
Health Plans: 保存 e2e api-crud.cy.js
Health Checks: 切换 e2e api-crud.cy.js
Backup: 触发备份 e2e api-crud.cy.js

19. 响应式布局

功能点 测试 文件
手机端 (375px) 渲染 e2e responsive.cy.js
平板端 (768px) 渲染 e2e responsive.cy.js
桌面端 (1280px) 渲染 e2e responsive.cy.js
宽屏 (1920px) 渲染 e2e responsive.cy.js
手机端 Tab 可滚动 e2e responsive.cy.js
手机端四象限垂直堆叠 e2e responsive.cy.js
手机端日程垂直堆叠 e2e responsive.cy.js

20. 性能

功能点 测试 文件
页面加载 < 5s e2e performance.cy.js
API 响应 < 1s e2e performance.cy.js
Tab 切换瞬时 e2e performance.cy.js
批量数据不崩溃 e2e performance.cy.js

覆盖统计

指标 数量
功能点总数 ~148
已覆盖功能点 ~126
Cypress E2E 测试 196
测试文件数 20
功能点覆盖率 ~85%

未覆盖的高风险功能

优先级 功能 风险 说明
P0 Canvas 图表渲染 (睡眠趋势) HIGH 原版有 Canvas 图表,新版尚未实现
P0 拖拽放置到时间段 HIGH Cypress 不支持原生 HTML5 DnD
P1 浏览器通知推送 MED Service Worker + 权限 API
P1 修改密码功能 MED 涉及安全敏感操作
P1 健康/音乐月度日历 MED 日历视图尚未完整实现
P1 年度热力图 MED 健康/音乐/睡眠的年度视图
P2 经期周期预测 MED 统计计算逻辑
P2 Sleep Buddy 数据对比 MED-LOW 多用户对比统计
P2 自动识别内容归档文档 MED-LOW 关键词匹配 + 提取规则
P3 导出日程为文本 LOW 简单格式化
P3 健康日记 LOW 额外输入区域

覆盖最充分的功能

  1. API CRUD 全覆盖 — 27 tests 覆盖所有 18 个资源的增删改查
  2. API 健康检查 — 21 tests 验证全部 20+ 端点返回正确格式
  3. 随手记 (Notes) — 14 tests 覆盖创建/编辑/删除/搜索/筛选
  4. 待办系统 (Tasks) — 18 tests 覆盖收集箱/四象限/目标/清单
  5. 睡眠打卡 (Sleep Buddy) — 14 tests 覆盖注册/登录/记录/通知
  6. 文档管理 (Docs) — 12 tests 覆盖创建/编辑/删除/详情/图标
  7. 响应式布局 — 7 tests 覆盖 4 种视口