TC-A-01 |
认证 |
运营 |
P0 |
接口 |
tests/test-cases/admin.md#TC-A-01 |
AdminAuthController |
登录进入 Dashboard;错误密码不签发 token |
TC-A-02 |
统计 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-02 |
StatsController |
显示任务总量/完成率,与库内一致 |
TC-A-03 |
方案管理 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-03 |
方案管理(全量) |
列出全部方案(含 source/进度/审核时间);可筛状态 |
TC-A-04 |
方案激活 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-04 |
方案激活 |
生成任务成功,提示成功 |
TC-A-05 |
报告解析 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-05 |
AdminReportParserController |
类型列表返回≥1 条(含 gut_flora) |
TC-A-06 |
报告解析 |
运营 |
P1 |
接口 |
tests/test-cases/admin.md#TC-A-06 |
报告类型注册 |
保存成功列表可见;重复 typeId 被拒绝 |
TC-A-07 |
报告解析 |
运营 |
P2 |
功能 |
tests/test-cases/admin.md#TC-A-07 |
未知聚类自学习 |
聚类列表可见;可自学习生成类型 |
TC-A-08 |
文章 |
运营 |
P0 |
功能 |
tests/test-cases/admin.md#TC-A-08 |
文章发布-审核 |
创建 1s 内返回成功(无超时);审核通过 C 端可见;长文稳定 |
TC-A-09 |
文章·去重 |
运营 |
P1 |
异常 |
tests/test-cases/admin.md#TC-A-09 |
文章标题去重 |
第二次被拦截(标题已存在) |
TC-A-10 |
关系类型 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-10 |
关系类型 CRUD |
操作成功;家长端关系选择器同步生效 |
TC-A-11 |
勋章 |
运营 |
P0 |
接口 |
tests/test-cases/admin.md#TC-A-11 |
勋章管理;黑盒回归 |
200 成功,badgeId 自动生成,列表可见 |
TC-A-12 |
供应商 |
运营 |
P0 |
接口 |
tests/test-cases/admin.md#TC-A-12 |
供应商管理;黑盒回归 |
200 成功,列表 name=昵称;同手机号重复被拒/可控覆盖 |
TC-A-13 |
活动 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-13 |
活动审核撤回;黑盒回归 |
状态流转正确;已发布可撤回;全流程无 500 |
TC-A-14 |
知识库 |
运营 |
P1 |
接口 |
tests/test-cases/admin.md#TC-A-14 |
知识库管理;黑盒回归 |
200 成功,列表移除,无 500 |
TC-A-15 |
数据迁移 |
运营 |
P2 |
功能 |
tests/test-cases/admin.md#TC-A-15 |
多数据源/SfmsDataSourceConfig |
接口返回成功,关键业务表数据量更新;失败回滚+明确错误 |
TC-A-16 |
参数校验 |
运营 |
P0 |
异常 |
tests/test-cases/admin.md#TC-A-16 |
统一 Result<T>+全局异常;黑盒回归 |
返回 400 + 具体字段提示(不再裸 500) |
TC-A-17 |
/api/admin/report-parser/* |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-17 |
/api/admin/report-parser/* |
达成目标:标注未知聚类;边界:新类先注册再解析 |
TC-A-18 |
优惠券/活动管理 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-18 |
优惠券/活动管理 |
达成目标:后台配券建活动;边界:时间冲突校验;名额超卖配置保护 |
TC-A-19 |
内容安全 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-19 |
内容安全 |
达成目标:审 UGC/AI;边界:敏感词命中拦截 |
TC-A-20 |
GDPR 工单 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-20 |
GDPR 工单 |
达成目标:处理用户注销/导出;边界:审计留痕;冷静期 |
TC-A-21 |
网关/限流 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-21 |
网关/限流 |
达成目标:接口防护;边界:误杀白名单 |
TC-A-22 |
模型管理 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-22 |
模型管理 |
达成目标:模型版本/开关;边界:下线前回退方案 |
TC-A-23 |
知识库 |
运营 |
P1 |
功能 |
tests/test-cases/admin.md#TC-A-23 |
知识库 |
达成目标:维护营养知识;边界:同步失败重试 |
TC-A-01-E |
认证 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-01-E |
AdminAuthController |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-A-02-E |
统计 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-02-E |
StatsController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-A-03-E |
方案管理 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-03-E |
方案管理(全量) |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-A-04-E |
方案激活 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-04-E |
方案激活 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-A-05-E |
报告解析 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-05-E |
AdminReportParserController |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-A-06-E |
报告解析 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-06-E |
报告类型注册 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-A-07-E |
报告解析 |
运营 |
P3 |
异常 |
tests/test-cases/admin.md#TC-A-07-E |
未知聚类自学习 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-A-08-E |
文章 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-08-E |
文章发布-审核 |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-A-09-E |
文章·去重 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-09-E |
文章标题去重 |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-A-10-E |
关系类型 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-10-E |
关系类型 CRUD |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-A-11-E |
勋章 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-11-E |
勋章管理;黑盒回归 |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-A-12-E |
供应商 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-12-E |
供应商管理;黑盒回归 |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-A-13-E |
活动 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-13-E |
活动审核撤回;黑盒回归 |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-A-14-E |
知识库 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-14-E |
知识库管理;黑盒回归 |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-A-15-E |
数据迁移 |
运营 |
P3 |
异常 |
tests/test-cases/admin.md#TC-A-15-E |
多数据源/SfmsDataSourceConfig |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-A-16-E |
参数校验 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-16-E |
统一 Result<T>+全局异常;黑盒回归 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-A-17-E |
/api/admin/report-parser/* |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-17-E |
/api/admin/report-parser/* |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-A-18-E |
优惠券/活动管理 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-18-E |
优惠券/活动管理 |
支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 |
TC-A-19-E |
内容安全 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-19-E |
内容安全 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-A-20-E |
GDPR 工单 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-20-E |
GDPR 工单 |
并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 |
TC-A-21-E |
网关/限流 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-21-E |
网关/限流 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-A-22-E |
模型管理 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-22-E |
模型管理 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-A-23-E |
知识库 |
运营 |
P2 |
异常 |
tests/test-cases/admin.md#TC-A-23-E |
知识库 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-A-01-P |
认证 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-01-P |
AdminAuthController |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-02-P |
统计 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-02-P |
StatsController |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-03-P |
方案管理 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-03-P |
方案管理(全量) |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-04-P |
方案激活 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-04-P |
方案激活 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-05-P |
报告解析 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-05-P |
AdminReportParserController |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-06-P |
报告解析 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-06-P |
报告类型注册 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-07-P |
报告解析 |
运营 |
P2 |
权限 |
tests/test-cases/admin.md#TC-A-07-P |
未知聚类自学习 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-08-P |
文章 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-08-P |
文章发布-审核 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-09-P |
文章·去重 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-09-P |
文章标题去重 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-10-P |
关系类型 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-10-P |
关系类型 CRUD |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-11-P |
勋章 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-11-P |
勋章管理;黑盒回归 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-12-P |
供应商 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-12-P |
供应商管理;黑盒回归 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-13-P |
活动 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-13-P |
活动审核撤回;黑盒回归 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-14-P |
知识库 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-14-P |
知识库管理;黑盒回归 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-15-P |
数据迁移 |
运营 |
P2 |
权限 |
tests/test-cases/admin.md#TC-A-15-P |
多数据源/SfmsDataSourceConfig |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-16-P |
参数校验 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-16-P |
统一 Result<T>+全局异常;黑盒回归 |
非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 |
TC-A-17-P |
/api/admin/report-parser/* |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-17-P |
/api/admin/report-parser/* |
非 admin 角色访问统一 401/403,不泄露后台数据 |
TC-A-18-P |
优惠券/活动管理 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-18-P |
优惠券/活动管理 |
非 admin 角色访问统一 401/403,不泄露后台数据 |
TC-A-19-P |
内容安全 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-19-P |
内容安全 |
非 admin 角色访问统一 401/403,不泄露后台数据 |
TC-A-20-P |
GDPR 工单 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-20-P |
GDPR 工单 |
非 admin 角色访问统一 401/403,不泄露后台数据 |
TC-A-21-P |
网关/限流 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-21-P |
网关/限流 |
非 admin 角色访问统一 401/403,不泄露后台数据 |
TC-A-22-P |
模型管理 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-22-P |
模型管理 |
非 admin 角色访问统一 401/403,不泄露后台数据 |
TC-A-23-P |
知识库 |
运营 |
P1 |
权限 |
tests/test-cases/admin.md#TC-A-23-P |
知识库 |
非 admin 角色访问统一 401/403,不泄露后台数据 |
TC-A-N01 |
配置CRUD |
运营 |
P1 |
性能 |
tests/test-cases/admin.md#TC-A-N01 |
配置管理 |
列表 ≤ 2s;CRUD 即时生效 |
TC-A-N02 |
报告解析中台 |
运营 |
P0 |
性能 |
tests/test-cases/admin.md#TC-A-N02 |
解析中台 |
单条 ≤ 30s;失败进未知聚类;监控可见积压 |
TC-A-N03 |
登录统计 |
运营 |
P1 |
性能 |
tests/test-cases/admin.md#TC-A-N03 |
统计聚合 |
聚合 ≤ 3s;支持分页/缓存;大数据不超时 |
TC-A-N04 |
限流熔断 |
运营 |
P0 |
性能 |
tests/test-cases/admin.md#TC-A-N04 |
限流熔断 |
触发限流/熔断返回 429/友好降级;系统不雪崩;恢复后正常 |
TC-A-N05 |
登录统计 |
运营 |
P0 |
安全 |
tests/test-cases/admin.md#TC-A-N05 |
后台鉴权 |
返回 401/403;后台不可被非管理员进入 |
TC-A-N06 |
文章审核 |
运营 |
P1 |
安全 |
tests/test-cases/admin.md#TC-A-N06 |
内容安全 |
内容转义/过滤;不执行脚本 |
TC-A-N07 |
内容安全 |
运营 |
P0 |
安全 |
tests/test-cases/admin.md#TC-A-N07 |
SSRF 防护 |
禁止内网地址(SSRF 防护);仅白名单外域;超时截断 |
TC-A-N08 |
知识库 |
运营 |
P1 |
安全 |
tests/test-cases/admin.md#TC-A-N08 |
上传校验 |
类型校验拒绝;不落盘执行 |
TC-A-N09 |
注销导出 |
运营 |
P0 |
安全 |
tests/test-cases/admin.md#TC-A-N09 |
数据导出合规 |
仅工单授权用户可导出;数据脱敏打包;操作留痕审计 |
TC-C-01 |
权限/双角色 |
孩子 |
P0 |
权限 |
tests/test-cases/child.md#TC-C-01 |
双角色铁律:孩子端不能切家长 |
进入孩子端首页;无切换家长入口;直接拼家长路由被 role 校验拦截 |
TC-C-02 |
任务 |
孩子 |
P0 |
功能 |
tests/test-cases/child.md#TC-C-02 |
TaskController |
状态→待家长审核;完成动作写入记录;重复提交不重复计分 |
TC-C-03 |
小游戏 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-03 |
pages/games/* |
得分按规则计算;积分/能量到账;成绩入榜;中途退出不计分 |
TC-C-04 |
心愿 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-04 |
WishController |
心愿进入家长待审批列表;积分不足创建拦截 |
TC-C-05 |
心愿 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-05 |
RewardController |
兑换成功,积分扣减正确;驳回后不可兑换 |
TC-C-06 |
能量 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-06 |
EnergyController |
显示个人能量值;有增量且流水可追溯;能量不为负 |
TC-C-07 |
报告/权限 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-07 |
报告查看权限隔离 |
可见报告内容;UI 无编辑/删除入口;直接调删除接口被 role 校验拒绝(403/401) |
TC-C-08 |
打卡/方案 |
孩子 |
P0 |
功能 |
tests/test-cases/child.md#TC-C-08 |
健康打卡/方案进度 |
打卡成功,方案 completedDays+1;重复打卡不重复计数(幂等) |
TC-C-09 |
勋章 |
孩子 |
P2 |
功能 |
tests/test-cases/child.md#TC-C-09 |
RewardController |
显示已获得/未获得勋章及进度;未解锁不显示领取 |
TC-C-10 |
勋章提醒 |
孩子 |
P2 |
功能 |
tests/test-cases/child.md#TC-C-10 |
MedalController |
达成→解锁+推送;重复达成不重复发推送 |
TC-C-11 |
成长记录 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-11 |
GrowthController |
仅展示本人数据;其他成员数据不可见 |
TC-C-12 |
食谱查看 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-12 |
饮食推荐 |
展示早/午/晚;无食谱显示空态不 500 |
TC-C-13 |
AI 对话 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-13 |
AIChatController |
返回适龄回答;敏感/不适龄内容被过滤 |
TC-C-14 |
任务重做 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-14 |
TaskController |
驳回后可重做;重做提交进入待审核 |
TC-C-15 |
消息接收 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-15 |
消息服务 |
仅见发给自己的消息;越权消息不可见 |
TC-C-16 |
个人资料 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-16 |
AuthController |
敏感字段(如关系)家长代管不可改 |
TC-C-17 |
退出 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-17 |
AuthController |
退出清除本地缓存;回登录页 |
TC-C-18 |
设备校验 |
孩子 |
P2 |
功能 |
tests/test-cases/child.md#TC-C-18 |
AuthController |
异常设备触发二次验证;通过后放行 |
TC-C-19 |
消息服务 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-19 |
消息服务 |
达成目标:收通知;边界:越权消息不可见 |
TC-C-20 |
GrowthController |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-20 |
GrowthController |
达成目标:看自己档案;边界:未成年人导出受限,需家长代办 |
TC-C-21 |
舌诊情绪识别 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-21 |
舌诊情绪识别 |
达成目标:拍照上传;边界:模糊/非照片拒绝;隐私标注 |
TC-C-22 |
MallController |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-22 |
MallController |
达成目标:用积分换;边界:积分不足拦截;重复兑换幂等 |
TC-C-23 |
客服 |
孩子 |
P1 |
功能 |
tests/test-cases/child.md#TC-C-23 |
客服 |
达成目标:提反馈;边界:内容适龄过滤;敏感信息脱敏 |
TC-C-01-E |
权限/双角色 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-01-E |
双角色铁律:孩子端不能切家长 |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-C-02-E |
任务 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-02-E |
TaskController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-03-E |
小游戏 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-03-E |
pages/games/* |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-C-04-E |
心愿 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-04-E |
WishController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-05-E |
心愿 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-05-E |
RewardController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-06-E |
能量 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-06-E |
EnergyController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-07-E |
报告/权限 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-07-E |
报告查看权限隔离 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-C-08-E |
打卡/方案 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-08-E |
健康打卡/方案进度 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-C-09-E |
勋章 |
孩子 |
P3 |
异常 |
tests/test-cases/child.md#TC-C-09-E |
RewardController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-10-E |
勋章提醒 |
孩子 |
P3 |
异常 |
tests/test-cases/child.md#TC-C-10-E |
MedalController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-11-E |
成长记录 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-11-E |
GrowthController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-12-E |
食谱查看 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-12-E |
饮食推荐 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-C-13-E |
AI 对话 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-13-E |
AIChatController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-C-14-E |
任务重做 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-14-E |
TaskController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-C-15-E |
消息接收 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-15-E |
消息服务 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-C-16-E |
个人资料 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-16-E |
AuthController |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-C-17-E |
退出 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-17-E |
AuthController |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-C-18-E |
设备校验 |
孩子 |
P3 |
异常 |
tests/test-cases/child.md#TC-C-18-E |
AuthController |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-C-19-E |
消息服务 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-19-E |
消息服务 |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-C-20-E |
GrowthController |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-20-E |
GrowthController |
并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 |
TC-C-21-E |
舌诊情绪识别 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-21-E |
舌诊情绪识别 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-C-22-E |
MallController |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-22-E |
MallController |
支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 |
TC-C-23-E |
客服 |
孩子 |
P2 |
异常 |
tests/test-cases/child.md#TC-C-23-E |
客服 |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-C-01-P |
权限/双角色 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-01-P |
双角色铁律:孩子端不能切家长 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-02-P |
任务 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-02-P |
TaskController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-03-P |
小游戏 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-03-P |
pages/games/* |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-04-P |
心愿 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-04-P |
WishController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-05-P |
心愿 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-05-P |
RewardController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-06-P |
能量 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-06-P |
EnergyController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-07-P |
报告/权限 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-07-P |
报告查看权限隔离 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-08-P |
打卡/方案 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-08-P |
健康打卡/方案进度 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-09-P |
勋章 |
孩子 |
P2 |
权限 |
tests/test-cases/child.md#TC-C-09-P |
RewardController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-10-P |
勋章提醒 |
孩子 |
P2 |
权限 |
tests/test-cases/child.md#TC-C-10-P |
MedalController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-11-P |
成长记录 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-11-P |
GrowthController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-12-P |
食谱查看 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-12-P |
饮食推荐 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-13-P |
AI 对话 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-13-P |
AIChatController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-14-P |
任务重做 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-14-P |
TaskController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-15-P |
消息接收 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-15-P |
消息服务 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-16-P |
个人资料 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-16-P |
AuthController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-17-P |
退出 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-17-P |
AuthController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-18-P |
设备校验 |
孩子 |
P2 |
权限 |
tests/test-cases/child.md#TC-C-18-P |
AuthController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-19-P |
消息服务 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-19-P |
消息服务 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-20-P |
GrowthController |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-20-P |
GrowthController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-21-P |
舌诊情绪识别 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-21-P |
舌诊情绪识别 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-22-P |
MallController |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-22-P |
MallController |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-23-P |
客服 |
孩子 |
P1 |
权限 |
tests/test-cases/child.md#TC-C-23-P |
客服 |
孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 |
TC-C-N01 |
任务打卡 |
孩子 |
P1 |
性能 |
tests/test-cases/child.md#TC-C-N01 |
TaskController |
重复提交幂等;并发不重复计分;响应 ≤ 1s |
TC-C-N02 |
消息通知 |
孩子 |
P2 |
性能 |
tests/test-cases/child.md#TC-C-N02 |
消息中心 |
列表渲染 ≤ 1.5s;标记已读即时 |
TC-C-N03 |
孩子端 |
孩子 |
P1 |
兼容 |
tests/test-cases/child.md#TC-C-N03 |
孩子端 |
功能一致;无错位;低龄设备流畅 |
TC-C-N04 |
只读报告 |
孩子 |
P2 |
兼容 |
tests/test-cases/child.md#TC-C-N04 |
报告前端 |
图表自适应;无溢出;可读 |
TC-C-N05 |
心愿 |
孩子 |
P1 |
安全 |
tests/test-cases/child.md#TC-C-N05 |
心愿鉴权 |
服务端校验归属;403/拒绝;孩子不可越权操作他人 |
TC-C-N06 |
消息通知 |
孩子 |
P2 |
安全 |
tests/test-cases/child.md#TC-C-N06 |
消息渲染 |
内容转义渲染;不执行脚本 |
TC-C-N07 |
孩子端 |
孩子 |
P0 |
安全 |
tests/test-cases/child.md#TC-C-N07 |
双角色铁律 |
一律 401/403;孩子端不可切回家长铁律生效 |
TC-X-01 |
规划师 |
P0 |
功能 |
已绑定家庭+孩子 B;募极生物 PDF |
tests/test-cases/cross-role-e2e.md#TC-X-01 |
- |
T-3 / P-10 |
TC-X-02 |
规划师 |
P0 |
功能 |
X-01 草稿 |
tests/test-cases/cross-role-e2e.md#TC-X-02 |
- |
T-4 |
TC-X-03 |
家长 |
P0 |
功能 |
孩子 B 有报告;已购会员 |
tests/test-cases/cross-role-e2e.md#TC-X-03 |
- |
P-13 |
TC-X-04 |
规划师 |
P0 |
功能 |
X-03 方案 generated |
tests/test-cases/cross-role-e2e.md#TC-X-04 |
- |
T-6 / T-7 |
TC-X-05 |
孩子 |
P0 |
功能 |
X-04 已生成方案任务 |
tests/test-cases/cross-role-e2e.md#TC-X-05 |
- |
C-7 / C-2 |
TC-X-06 |
规划师 |
P0 |
功能 |
X-05 已提交 |
tests/test-cases/cross-role-e2e.md#TC-X-06 |
- |
T-9 / P-06 |
TC-X-07 |
运营 |
P1 |
功能 |
以上步骤已执行 |
tests/test-cases/cross-role-e2e.md#TC-X-07 |
- |
A-02 |
TC-X-08 |
多角色 |
P0 |
异常 |
X-04 已 active 方案 |
tests/test-cases/cross-role-e2e.md#TC-X-08 |
- |
T-8 / P-09a / C-8 |
TC-X-09 |
多角色 |
P0 |
功能 |
家长已生成方案(generated) |
tests/test-cases/cross-role-e2e.md#TC-X-09 |
- |
P-44 / T-06 / T-07 |
TC-X-10 |
多角色 |
P2 |
功能 |
同一孩子多次上传同类型报告 |
tests/test-cases/cross-role-e2e.md#TC-X-10 |
- |
P-25 / T-21 |
TC-X-11 |
多角色 |
P1 |
功能 |
跨角色消息配置就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-11 |
- |
P-65 / T-19 / C-15 |
TC-X-12 |
多角色 |
P1 |
功能 |
家长未购会员 |
tests/test-cases/cross-role-e2e.md#TC-X-12 |
- |
P-58 / P-16 |
TC-X-13 |
跨角色 |
P1 |
功能 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-13 |
- |
X-13 |
TC-X-14 |
跨角色 |
P1 |
功能 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-14 |
- |
X-14 |
TC-X-15 |
跨角色 |
P1 |
功能 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-15 |
- |
X-15 |
TC-X-16 |
跨角色 |
P0 |
功能 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-16 |
- |
X-16 |
TC-X-17 |
跨角色 |
P1 |
功能 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-17 |
- |
X-17 |
TC-X-18 |
跨角色 |
P1 |
功能 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-18 |
- |
X-18 |
TC-X-01-E |
规划师 |
P2 |
异常 |
已绑定家庭+孩子 B;募极生物 PDF |
tests/test-cases/cross-role-e2e.md#TC-X-01-E |
- |
T-3 / P-10 |
TC-X-02-E |
规划师 |
P2 |
异常 |
X-01 草稿 |
tests/test-cases/cross-role-e2e.md#TC-X-02-E |
- |
T-4 |
TC-X-03-E |
家长 |
P2 |
异常 |
孩子 B 有报告;已购会员 |
tests/test-cases/cross-role-e2e.md#TC-X-03-E |
- |
P-13 |
TC-X-04-E |
规划师 |
P2 |
异常 |
X-03 方案 generated |
tests/test-cases/cross-role-e2e.md#TC-X-04-E |
- |
T-6 / T-7 |
TC-X-05-E |
孩子 |
P2 |
异常 |
X-04 已生成方案任务 |
tests/test-cases/cross-role-e2e.md#TC-X-05-E |
- |
C-7 / C-2 |
TC-X-06-E |
规划师 |
P2 |
异常 |
X-05 已提交 |
tests/test-cases/cross-role-e2e.md#TC-X-06-E |
- |
T-9 / P-06 |
TC-X-07-E |
运营 |
P2 |
异常 |
以上步骤已执行 |
tests/test-cases/cross-role-e2e.md#TC-X-07-E |
- |
A-02 |
TC-X-08-E |
多角色 |
P2 |
异常 |
X-04 已 active 方案 |
tests/test-cases/cross-role-e2e.md#TC-X-08-E |
- |
T-8 / P-09a / C-8 |
TC-X-09-E |
多角色 |
P2 |
异常 |
家长已生成方案(generated) |
tests/test-cases/cross-role-e2e.md#TC-X-09-E |
- |
P-44 / T-06 / T-07 |
TC-X-10-E |
多角色 |
P3 |
异常 |
同一孩子多次上传同类型报告 |
tests/test-cases/cross-role-e2e.md#TC-X-10-E |
- |
P-25 / T-21 |
TC-X-11-E |
多角色 |
P2 |
异常 |
跨角色消息配置就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-11-E |
- |
P-65 / T-19 / C-15 |
TC-X-12-E |
多角色 |
P2 |
异常 |
家长未购会员 |
tests/test-cases/cross-role-e2e.md#TC-X-12-E |
- |
P-58 / P-16 |
TC-X-13-E |
跨角色 |
P2 |
异常 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-13-E |
- |
X-13 |
TC-X-14-E |
跨角色 |
P2 |
异常 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-14-E |
- |
X-14 |
TC-X-15-E |
跨角色 |
P2 |
异常 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-15-E |
- |
X-15 |
TC-X-16-E |
跨角色 |
P1 |
异常 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-16-E |
- |
X-16 |
TC-X-17-E |
跨角色 |
P2 |
异常 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-17-E |
- |
X-17 |
TC-X-18-E |
跨角色 |
P2 |
异常 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-18-E |
- |
X-18 |
TC-X-01-P |
规划师 |
P1 |
权限 |
已绑定家庭+孩子 B;募极生物 PDF |
tests/test-cases/cross-role-e2e.md#TC-X-01-P |
- |
T-3 / P-10 |
TC-X-02-P |
规划师 |
P1 |
权限 |
X-01 草稿 |
tests/test-cases/cross-role-e2e.md#TC-X-02-P |
- |
T-4 |
TC-X-03-P |
家长 |
P1 |
权限 |
孩子 B 有报告;已购会员 |
tests/test-cases/cross-role-e2e.md#TC-X-03-P |
- |
P-13 |
TC-X-04-P |
规划师 |
P1 |
权限 |
X-03 方案 generated |
tests/test-cases/cross-role-e2e.md#TC-X-04-P |
- |
T-6 / T-7 |
TC-X-05-P |
孩子 |
P1 |
权限 |
X-04 已生成方案任务 |
tests/test-cases/cross-role-e2e.md#TC-X-05-P |
- |
C-7 / C-2 |
TC-X-06-P |
规划师 |
P1 |
权限 |
X-05 已提交 |
tests/test-cases/cross-role-e2e.md#TC-X-06-P |
- |
T-9 / P-06 |
TC-X-07-P |
运营 |
P1 |
权限 |
以上步骤已执行 |
tests/test-cases/cross-role-e2e.md#TC-X-07-P |
- |
A-02 |
TC-X-08-P |
多角色 |
P1 |
权限 |
X-04 已 active 方案 |
tests/test-cases/cross-role-e2e.md#TC-X-08-P |
- |
T-8 / P-09a / C-8 |
TC-X-09-P |
多角色 |
P1 |
权限 |
家长已生成方案(generated) |
tests/test-cases/cross-role-e2e.md#TC-X-09-P |
- |
P-44 / T-06 / T-07 |
TC-X-10-P |
多角色 |
P2 |
权限 |
同一孩子多次上传同类型报告 |
tests/test-cases/cross-role-e2e.md#TC-X-10-P |
- |
P-25 / T-21 |
TC-X-11-P |
多角色 |
P1 |
权限 |
跨角色消息配置就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-11-P |
- |
P-65 / T-19 / C-15 |
TC-X-12-P |
多角色 |
P1 |
权限 |
家长未购会员 |
tests/test-cases/cross-role-e2e.md#TC-X-12-P |
- |
P-58 / P-16 |
TC-X-13-P |
跨角色 |
P1 |
权限 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-13-P |
- |
X-13 |
TC-X-14-P |
跨角色 |
P1 |
权限 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-14-P |
- |
X-14 |
TC-X-15-P |
跨角色 |
P1 |
权限 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-15-P |
- |
X-15 |
TC-X-16-P |
跨角色 |
P0 |
权限 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-16-P |
- |
X-16 |
TC-X-17-P |
跨角色 |
P1 |
权限 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-17-P |
- |
X-17 |
TC-X-18-P |
跨角色 |
P1 |
权限 |
已登录(默认 跨角色);相关前置数据就绪 |
tests/test-cases/cross-role-e2e.md#TC-X-18-P |
- |
X-18 |
TC-X-N01 |
跨角色 |
P0 |
性能 |
多家庭并发(≥10 家庭) |
tests/test-cases/cross-role-e2e.md#TC-X-N01 |
- |
X-01 |
TC-X-N02 |
跨角色 |
P0 |
性能 |
多家庭同时生成方案 |
tests/test-cases/cross-role-e2e.md#TC-X-N02 |
- |
X-03 |
TC-X-N03 |
跨角色 |
P0 |
性能 |
活动名额 100,瞬时 500 请求 |
tests/test-cases/cross-role-e2e.md#TC-X-N03 |
- |
X-15 |
TC-X-N04 |
跨角色 |
P1 |
性能 |
全平台打卡高峰 |
tests/test-cases/cross-role-e2e.md#TC-X-N04 |
- |
X-05 |
TC-X-N05 |
跨角色 |
P0 |
安全 |
跨角色越权 |
tests/test-cases/cross-role-e2e.md#TC-X-N05 |
- |
X-01~X-06 |
TC-X-N06 |
跨角色 |
P0 |
安全 |
导出授权 |
tests/test-cases/cross-role-e2e.md#TC-X-N06 |
- |
X-17 |
TC-X-N07 |
跨角色 |
P1 |
兼容 |
iOS/Android/小程序/Web 同时在线 |
tests/test-cases/cross-role-e2e.md#TC-X-N07 |
- |
X-18 |
TC-X-N08 |
跨角色 |
P0 |
安全 |
文件上传链路 |
tests/test-cases/cross-role-e2e.md#TC-X-N08 |
- |
X-01 |
TC-DV-01 |
预约/权限 |
家长A vs 家长B |
P0 |
权限 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-01 |
F1 |
当前:返回 success 且 status=3(越权成功)→【缺陷 F1】;期望:403/拒绝 |
TC-DV-02 |
预约/状态机 |
规划师 |
P1 |
异常 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-02 |
F2 |
当前:status 置 1(非法回退)→【缺陷 F2】;期望:失败 |
TC-DV-03 |
预约/额度 |
家长 |
P0 |
功能 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-03 |
修正口径 |
返回「额度不足或已过期」;不建预约、不扣能量 |
TC-DV-04 |
预约/幂等 |
家长 |
P1 |
异常 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-04 |
F4 |
当前:2 条预约 + 20 能量 →【缺陷 F4】;期望:第 2 次拒绝/返回既有 |
TC-DV-05 |
预约/权限 |
非指派用户 |
P0 |
权限 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-05 |
既有 |
返回「您不是被指派的测评师」;status 不变 |
TC-DV-06 |
预约/校验 |
家长 |
P1 |
接口 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-06 |
既有 |
返回「assessorId或guideId必须提供一个」 |
TC-DV-07 |
列表/权限 |
非 teacher |
P2 |
权限 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-07 |
F5 |
返回「只有成长规划师可以查看此列表」;assessor-list 仅见自身 |
TC-DV-08 |
预约/校验 |
家长 |
P2 |
异常 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-08 |
F6 |
当前:无校验入库(F6);期望:400 |
TC-DV-09 |
预约/状态机 |
规划师 |
P1 |
功能 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-09 |
状态机 |
0→1→2 正确;能量 10+30 发放且流水一致 |
TC-DV-10 |
订单↔额度↔预约 |
家长 |
P0 |
功能 |
tests/test-cases/deep-dive-assessment-appointment.md#TC-DV-10 |
修正口径 |
额度扣减正确;额度为 0 时 create 失败 |
TC-PA-01 |
激活/拆任务 |
规划师 |
P0 |
功能 |
tests/test-cases/deep-dive-plan-activation.md#TC-PA-01 |
G1 |
status→active;生成 1 引导 + N 模板任务;能量/流水一致 |
TC-PA-02 |
激活/幂等 |
规划师 |
P0 |
异常 |
tests/test-cases/deep-dive-plan-activation.md#TC-PA-02 |
G1 |
抛「方案状态异常,需要先审核通过」 |
TC-PA-03 |
激活/并发幂等 |
规划师×2 |
P1 |
并发 |
tests/test-cases/deep-dive-plan-activation.md#TC-PA-03 |
G2 |
任务总数 = 1+ N(不翻倍);若翻倍→【缺陷 G2】 |
TC-PA-04 |
激活/取消 |
规划师 |
P1 |
功能 |
tests/test-cases/deep-dive-plan-activation.md#TC-PA-04 |
G3 |
旧任务 cancelled 不计入,重新生成 1+N 任务 |
TC-PA-05 |
拆任务/边界 |
规划师 |
P2 |
边界 |
tests/test-cases/deep-dive-plan-activation.md#TC-PA-05 |
G3 |
仅生成引导任务,无模板任务(文档化) |
TC-PA-06 |
拆任务/数据 |
规划师 |
P2 |
数据 |
tests/test-cases/deep-dive-plan-activation.md#TC-PA-06 |
G4 |
非当天过期(待确认设计) |
TC-G-01 |
启动/首页 |
游客 |
P1 |
功能 |
tests/test-cases/guest.md#TC-G-01 |
JwtInterceptor 拦截 `/api/** |
显示引流首页,不进入任何业务页;明显展示微信/手机号/邀请登录入口 |
TC-G-02 |
认证 |
游客 |
P0 |
接口 |
tests/test-cases/guest.md#TC-G-02 |
AuthController/API_REFERENCE` 1.1 |
返回 Result 含 token+用户信息;角色默认 parent;跳转家长首页;首次登录建 User+family_members(memberType=login) |
TC-G-03 |
认证 |
游客 |
P0 |
接口 |
tests/test-cases/guest.md#TC-G-03 |
统一 POST/JWT |
验证码正确→登录下发 token;错误→提示失败且不产生会话;限流生效 |
TC-G-04 |
家庭/邀请 |
游客 |
P1 |
功能 |
tests/test-cases/guest.md#TC-G-04 |
FamilyInviteController |
登录后自动归属对应家庭,成员列表出现该用户;令牌失效→「邀请已失效」 |
TC-G-05 |
权限 |
游客 |
P0 |
权限 |
tests/test-cases/guest.md#TC-G-05 |
JWT;8 公开路径白名单(1.1) |
业务页→401 跳登录,登录后回跳;商城/文章列表可见(公开);需登录详情被拦截 |
TC-G-06 |
权限 |
游客 |
P0 |
权限 |
tests/test-cases/guest.md#TC-G-06 |
JwtInterceptor |
JwtInterceptor 拦截(8 个公开路径除外);缺 token→401/403,不泄露内部错误堆栈 |
TC-G-07 |
测试模式 |
游客 |
P2 |
功能 |
tests/test-cases/guest.md#TC-G-07 |
AGENTS.md 测试模式 |
仅测试环境生效;生产强制真授权;模拟登录不建真实微信绑定 |
TC-G-08 |
环境切换 |
游客 |
P2 |
功能 |
tests/test-cases/guest.md#TC-G-08 |
config.js |
环境识别失败回退默认地址;接口地址正确 |
TC-G-09 |
认证 |
游客 |
P1 |
功能 |
tests/test-cases/guest.md#TC-G-09 |
AuthController |
退出后本地缓存敏感数据清除;再次进入需登录 |
TC-G-10 |
注册 |
游客 |
P1 |
功能 |
tests/test-cases/guest.md#TC-G-10 |
AuthController |
引导至注册;已注册账号不重复建档 |
TC-G-11 |
协议页/AgreementController |
游客 |
P2 |
功能 |
tests/test-cases/guest.md#TC-G-11 |
协议页/AgreementController |
达成目标:合规告知;边界:未同意不可进入注册/核心流程 |
TC-G-12 |
config.js |
游客 |
P2 |
功能 |
tests/test-cases/guest.md#TC-G-12 |
config.js |
达成目标:非微信浏览器打开小程序链接;边界:探测失败给出明确引导 |
TC-G-01-E |
启动/首页 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-01-E |
JwtInterceptor 拦截 `/api/** |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-G-02-E |
认证 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-02-E |
AuthController/API_REFERENCE` 1.1 |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-G-03-E |
认证 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-03-E |
统一 POST/JWT |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-G-04-E |
家庭/邀请 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-04-E |
FamilyInviteController |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-G-05-E |
权限 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-05-E |
JWT;8 公开路径白名单(1.1) |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-G-06-E |
权限 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-06-E |
JwtInterceptor |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-G-07-E |
测试模式 |
游客 |
P3 |
异常 |
tests/test-cases/guest.md#TC-G-07-E |
AGENTS.md 测试模式 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-G-08-E |
环境切换 |
游客 |
P3 |
异常 |
tests/test-cases/guest.md#TC-G-08-E |
config.js |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-G-09-E |
认证 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-09-E |
AuthController |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-G-10-E |
注册 |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-10-E |
AuthController |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-G-11-E |
协议页/AgreementController |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-11-E |
协议页/AgreementController |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-G-12-E |
config.js |
游客 |
P2 |
异常 |
tests/test-cases/guest.md#TC-G-12-E |
config.js |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-G-01-P |
启动/首页 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-01-P |
JwtInterceptor 拦截 `/api/** |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-02-P |
认证 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-02-P |
AuthController/API_REFERENCE` 1.1 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-03-P |
认证 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-03-P |
统一 POST/JWT |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-04-P |
家庭/邀请 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-04-P |
FamilyInviteController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-05-P |
权限 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-05-P |
JWT;8 公开路径白名单(1.1) |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-06-P |
权限 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-06-P |
JwtInterceptor |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-07-P |
测试模式 |
游客 |
P2 |
权限 |
tests/test-cases/guest.md#TC-G-07-P |
AGENTS.md 测试模式 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-08-P |
环境切换 |
游客 |
P2 |
权限 |
tests/test-cases/guest.md#TC-G-08-P |
config.js |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-09-P |
认证 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-09-P |
AuthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-10-P |
注册 |
游客 |
P1 |
权限 |
tests/test-cases/guest.md#TC-G-10-P |
AuthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-G-11-P |
协议页/AgreementController |
游客 |
P2 |
权限 |
tests/test-cases/guest.md#TC-G-11-P |
协议页/AgreementController |
统一 401/403,不泄露内部错误与数据;8 个公开路径除外 |
TC-G-12-P |
config.js |
游客 |
P2 |
权限 |
tests/test-cases/guest.md#TC-G-12-P |
config.js |
统一 401/403,不泄露内部错误与数据;8 个公开路径除外 |
TC-G-N01 |
落地页 |
游客 |
P2 |
性能 |
tests/test-cases/guest.md#TC-G-N01 |
落地页/邀请 |
首屏 ≤ 3s;骨架屏生效;CDN 资源命中;无白屏 |
TC-G-N02 |
浏览转化 |
游客 |
P2 |
兼容 |
tests/test-cases/guest.md#TC-G-N02 |
登录注册 |
布局一致;微信授权正常;兜底登录可用;无错位 |
TC-G-N03 |
非微信H5 |
游客 |
P2 |
兼容 |
tests/test-cases/guest.md#TC-G-N03 |
H5 兜底 |
功能可用;无微信 SDK 依赖报错;流程闭环 |
TC-G-N04 |
落地页 |
游客 |
P0 |
安全 |
tests/test-cases/guest.md#TC-G-N04 |
接口鉴权 |
返回 401;不泄露数据与结构 |
TC-G-N05 |
登录注册 |
游客 |
P0 |
安全 |
tests/test-cases/guest.md#TC-G-N05 |
登录限流 |
触发限流/锁定;验证码一次性;防爆破;无撞库成功 |
TC-P-01 |
家庭 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-01 |
FamilyInviteController |
家庭创建成功;生成唯一邀请码+二维码(令牌+落地页);角色变家庭管理员 |
TC-P-02 |
家庭/成员 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-02 |
FamilyInviteController |
C 加入家庭,成员列表出现 C |
TC-P-03 |
成员资料 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-03 |
FamilyMembersController |
成员卡片正确显示;关系标签可选(RelationshipPicker) |
TC-P-04 |
关系图 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-04 |
关系类型 CRUD/前端选择器 |
关系图节点与关系标签同步更新 |
TC-P-05 |
任务 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-05 |
TaskController |
任务出现在 B 列表,状态待执行 |
TC-P-06 |
任务审核 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-06 |
TaskController/PointsController |
通过→B 积分+N 并生成流水;驳回→退回重做;重复提交不重复发分 |
TC-P-07 |
心愿 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-07 |
WishController/RewardController |
通过→扣积分进入兑换;驳回→心愿失效;积分不足兑换拦截 |
TC-P-08 |
能量 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-08 |
EnergyController |
显示家庭健康指数与五维能量分配(总和=100%);流水可追溯;无数据时空态非 500 |
TC-P-09 |
测评订单 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-09 |
AssessmentAppointmentController |
生成测评订单;状态 已支付→待安排→已预约;未支付/未选规划师不进入待安排 |
TC-P-10 |
健康报告 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-10 |
健康报告上传解析 |
识别为 gut_flora;三阶段上传→解析预览→确认入库;非募极报告提示「请确认是募极生物肠道菌群报告」 |
TC-P-11 |
报告查看 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-11 |
报告解析 |
显示菌群健康分/平衡/多样性、菌种明细、疾病风险;七维评分刷新 |
TC-P-12 |
饮食推荐 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-12 |
饮食推荐系统 |
按报告生成食材推荐指数,展示可吃/慎吃列表;无报告时无推荐 |
TC-P-13 |
AI 方案 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-13 |
AI 统一走 LangGraph;`AiGateway |
生成 overview+营养/饮食/运动三板块;可逐板块重生成/确认;未购买会员→提示购买 |
TC-P-14 |
方案提交 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-14 |
方案状态机 |
进入「已提交(待规划师审核)」或按配置直接发布 |
TC-P-15 |
双角色 |
家长 |
P0 |
权限 |
tests/test-cases/parent.md#TC-P-15 |
POST /api/family/member/switch`(替代废弃 switch-mode);双角色铁律 |
切换为孩子端界面(数据隔离);切回需密码;孩子端不能切回家长 |
TC-P-16 |
会员 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-16 |
MembershipController/ProductOrderController |
支付成功解锁方案生成等付费功能;未购买点击生成提示购买 |
TC-P-17 |
积分/成长 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-17 |
PointsController/GrowthController |
积分流水与孩子成长记录一致;时间格式 yyyy-MM-dd HH:mm:ss;积分与流水总额一致 |
TC-P-18 |
AI 对话 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-18 |
AIChatController`;LangGraph RAG |
返回基于知识库回答,可含产品/任务推荐;LangGraph 不可用时 AiGateway Fallback 兜底;多轮连续 |
TC-P-19 |
能量配置 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-19 |
维度配置 |
显示身/心/智/行/富口径与权重;配置未同步展示兜底说明 |
TC-P-20 |
健康报告 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-20 |
报告解析中台/`POST /api/media/upload |
识别 gut_flora;解析预览→确认入库;非募极报告提示「请确认是募极生物肠道菌群报告」 |
TC-P-21 |
报告解析 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-21 |
/api/admin/report-parser/types |
匹配已注册类型;未知类型进未知聚类待运营自学习 |
TC-P-22 |
报告预览 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-22 |
解析中台 |
预览数据完整;异常数据提示不入库 |
TC-P-23 |
报告入库 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-23 |
解析中台 |
确认前可取消不入库;确认后七维刷新 |
TC-P-24 |
报告管理 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-24 |
报告管理 |
删除有关联方案时提示;对比展示差异 |
TC-P-25 |
报告趋势 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-25 |
成长/报告 |
单报告无趋势提示;时间轴正确 |
TC-P-26 |
饮食推荐 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-26 |
饮食推荐系统 |
按菌群生成;无报告无推荐 |
TC-P-27 |
家庭食谱 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-27 |
饮食推荐/家庭食谱 |
无报告降级通用食谱;忌口/过敏自动排除 |
TC-P-28 |
食谱筛选 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-28 |
饮食推荐 |
忌口冲突时提示;重算生效 |
TC-P-29 |
食谱收藏 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-29 |
饮食推荐 |
调整不破坏营养目标;收藏持久化 |
TC-P-30 |
食谱营养 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-30 |
饮食推荐 |
超标/不足提示 |
TC-P-31 |
测评类型 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-31 |
DanAssessmentController |
类目来自后端字典;展示完整 8 类 |
TC-P-32 |
测评规划师 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-32 |
测评订单 |
未绑定规划师提示先绑定 |
TC-P-33 |
测评下单 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-33 |
AssessmentOrder |
套餐下架不可下单;生成待支付订单 |
TC-P-34 |
测评支付 |
家长 |
P1 |
接口 |
tests/test-cases/parent.md#TC-P-34 |
支付/`AssessmentQuota |
支付失败回滚不生成额度 |
TC-P-35 |
测评额度 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-35 |
AssessmentQuota |
额度过期不可用于预约;展示有效期 |
TC-P-36 |
测评预约 |
家长 |
P0 |
接口 |
tests/test-cases/parent.md#TC-P-36 |
AssessmentAppointmentController |
先扣一条额度→落预约;额度不足/过期直接报错不落预约 |
TC-P-37 |
预约状态 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-37 |
AssessmentAppointmentController |
状态准确;状态机守卫 |
TC-P-38 |
预约取消 |
家长 |
P0 |
权限 |
tests/test-cases/parent.md#TC-P-38 |
AssessmentAppointmentController |
非归属取消被拒(CFC-AP 取消越权);取消不退款逻辑 |
TC-P-39 |
DAN报告 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-39 |
DanAssessmentResultDTO |
结果未录入不展示;量纲标注 |
TC-P-40 |
AI方案 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-40 |
AIChatController/AiGateway |
未购会员提示购买;AI 超时 AiGateway Fallback 不 500 |
TC-P-41 |
方案迭代 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-41 |
AIChatController |
重生成不丢其他板块 |
TC-P-42 |
方案编辑 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-42 |
方案管理 |
编辑后状态标记已改 |
TC-P-43 |
方案查看 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-43 |
方案管理 |
空方案不白屏 |
TC-P-44 |
方案确认 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-44 |
方案状态机 |
未确认不可激活;确认幂等 |
TC-P-45 |
方案发布 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-45 |
方案管理 |
需审核配置时走审核流 |
TC-P-46 |
方案激活 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-46 |
方案激活任务分解 |
已激活再激活不重复(幂等靠状态机);失败回滚不残半任务 |
TC-P-47 |
方案任务 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-47 |
GrowthPlanController |
任务增删与方案同步 |
TC-P-48 |
方案版本 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-48 |
方案管理 |
版本不可篡改 |
TC-P-49 |
AI对话 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-49 |
AIChatController |
基于知识库回答;LangGraph 不可用 Fallback;多轮连续 |
TC-P-50 |
成长记录 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-50 |
GrowthController |
数据缺失项跳过不报错 |
TC-P-51 |
成长里程碑 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-51 |
GrowthController |
重复标幂等 |
TC-P-52 |
商城浏览 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-52 |
MallController/danshop |
下架商品不展示 |
TC-P-53 |
商品详情 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-53 |
MallController |
库存为 0 提示 |
TC-P-54 |
商城下单 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-54 |
MallController |
库存不足拦截;重复下单幂等 |
TC-P-55 |
订单支付 |
家长 |
P1 |
接口 |
tests/test-cases/parent.md#TC-P-55 |
支付 |
支付失败回滚 |
TC-P-56 |
订单退款 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-56 |
订单服务 |
已发货退款规则;重复退款拦截 |
TC-P-57 |
优惠券 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-57 |
优惠券 |
券过期/不满足门槛不可用 |
TC-P-58 |
会员购买 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-58 |
MemberController |
支付失败回滚;重复购买幂等 |
TC-P-59 |
会员权益 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-59 |
MemberController |
权益随档位变化 |
TC-P-60 |
会员续费 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-60 |
MemberController |
续费叠加计算正确 |
TC-P-61 |
联系人 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-61 |
ContactCard/contact-detail |
重复号码去重 |
TC-P-62 |
联系人导入 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-62 |
ContactImport |
导入格式错误行跳过并报告 |
TC-P-63 |
联系人权限 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-63 |
ContactCard |
越权查看被拒 |
TC-P-64 |
个人资料 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-64 |
AuthController |
手机格式校验;保存生效 |
TC-P-65 |
通知设置 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-65 |
消息服务 |
关闭后仍保关键安全通知 |
TC-P-66 |
隐私设置 |
家长 |
P2 |
功能 |
tests/test-cases/parent.md#TC-P-66 |
隐私设置 |
最小权限保底 |
TC-P-67 |
报告代传/report-proxy |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-67 |
报告代传/report-proxy |
达成目标:无报告原件时由他人代传;边界:代传需授权令牌;越权代传他人孩子被拒;代传报告归属校验 |
TC-P-68 |
家庭天盘 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-68 |
家庭天盘 |
达成目标:一眼看全家健康/能量;边界:数据缺失降级展示;仅本家庭成员可见 |
TC-P-69 |
精准营养 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-69 |
精准营养 |
达成目标:设定每日营养/热量目标;边界:目标非法(负/超上限)拦截 |
TC-P-70 |
舌诊情绪识别 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-70 |
舌诊情绪识别 |
达成目标:上传舌苔照辅助评估;边界:非照片/模糊拒绝;隐私标注不外露 |
TC-P-71 |
AuthController |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-71 |
AuthController |
达成目标:注销账号;边界:有进行中订单/未结清拦截;注销后不可登录 |
TC-P-72 |
数据导出(GDPR) |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-72 |
数据导出(GDPR) |
达成目标:下载本人数据;边界:敏感字段脱敏;频次限制;越权导出被拒 |
TC-P-73 |
家庭/成员 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-73 |
家庭/成员 |
达成目标:多孩子家庭切换;边界:仅本家庭孩子可选;当前孩子态隔离 |
TC-P-74 |
规划师绑定 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-74 |
规划师绑定 |
达成目标:更换服务规划师;边界:解绑前处理在途方案/预约;非本家庭规划师拒 |
TC-P-75 |
优惠券 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-75 |
优惠券 |
达成目标:得券;边界:库存为0/已领拦截;重复领幂等 |
TC-P-76 |
活动管理 |
家长 |
P0 |
功能 |
tests/test-cases/parent.md#TC-P-76 |
活动管理 |
达成目标:报名平台活动;边界:并发超卖拦截(CFC 真实 bug 已修);名额满拒;重复报名幂等 |
TC-P-77 |
活动 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-77 |
活动 |
达成目标:参与打卡/裂变;边界:重复打卡幂等;刷量/机器行为拦截 |
TC-P-78 |
消息服务 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-78 |
消息服务 |
达成目标:看系统/任务/方案提醒;边界:越权消息不可见;分页 |
TC-P-79 |
消息服务 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-79 |
消息服务 |
达成目标:控制接收;边界:关键安全通知不可关闭 |
TC-P-80 |
会员/订单 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-80 |
会员/订单 |
达成目标:退会员/开发票;边界:已消费不退;重复退拦截;发票信息校验 |
TC-P-81 |
方案/任务 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-81 |
方案/任务 |
达成目标:暂存未完;边界:草稿有效期;恢复冲突提示 |
TC-P-82 |
搜索 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-82 |
搜索 |
达成目标:快速定位;边界:越权结果过滤;空结果不报错 |
TC-P-83 |
客服 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-83 |
客服 |
达成目标:提反馈;边界:敏感信息脱敏;附件大小限制 |
TC-P-84 |
分享 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-84 |
分享 |
达成目标:共享;边界:链接失效/权限校验;越权分享被拒 |
TC-P-85 |
AuthController |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-85 |
AuthController |
达成目标:同账号多设备;边界:异常设备风控;退出清 token |
TC-P-86 |
勋章/排行 |
家长 |
P1 |
功能 |
tests/test-cases/parent.md#TC-P-86 |
勋章/排行 |
达成目标:激励;边界:数据仅本家庭可见;排名实时性 |
TC-P-01-E |
家庭 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-01-E |
FamilyInviteController |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-P-02-E |
家庭/成员 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-02-E |
FamilyInviteController |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-P-03-E |
成员资料 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-03-E |
FamilyMembersController |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-04-E |
关系图 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-04-E |
关系类型 CRUD/前端选择器 |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-P-05-E |
任务 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-05-E |
TaskController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-06-E |
任务审核 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-06-E |
TaskController/PointsController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-07-E |
心愿 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-07-E |
WishController/RewardController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-08-E |
能量 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-08-E |
EnergyController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-09-E |
测评订单 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-09-E |
AssessmentAppointmentController |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-10-E |
健康报告 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-10-E |
健康报告上传解析 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-11-E |
报告查看 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-11-E |
报告解析 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-12-E |
饮食推荐 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-12-E |
饮食推荐系统 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-13-E |
AI 方案 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-13-E |
AI 统一走 LangGraph;`AiGateway |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-14-E |
方案提交 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-14-E |
方案状态机 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-15-E |
双角色 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-15-E |
POST /api/family/member/switch`(替代废弃 switch-mode);双角色铁律 |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-P-16-E |
会员 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-16-E |
MembershipController/ProductOrderController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-17-E |
积分/成长 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-17-E |
PointsController/GrowthController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-18-E |
AI 对话 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-18-E |
AIChatController`;LangGraph RAG |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-19-E |
能量配置 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-19-E |
维度配置 |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-20-E |
健康报告 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-20-E |
报告解析中台/`POST /api/media/upload |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-21-E |
报告解析 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-21-E |
/api/admin/report-parser/types |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-22-E |
报告预览 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-22-E |
解析中台 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-23-E |
报告入库 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-23-E |
解析中台 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-24-E |
报告管理 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-24-E |
报告管理 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-25-E |
报告趋势 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-25-E |
成长/报告 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-26-E |
饮食推荐 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-26-E |
饮食推荐系统 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-27-E |
家庭食谱 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-27-E |
饮食推荐/家庭食谱 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-28-E |
食谱筛选 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-28-E |
饮食推荐 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-29-E |
食谱收藏 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-29-E |
饮食推荐 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-30-E |
食谱营养 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-30-E |
饮食推荐 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-31-E |
测评类型 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-31-E |
DanAssessmentController |
额度不足/过期直接报错不落预约;并发重复提交被拒(幂等);状态机守卫非法回退 |
TC-P-32-E |
测评规划师 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-32-E |
测评订单 |
额度不足/过期直接报错不落预约;并发重复提交被拒(幂等);状态机守卫非法回退 |
TC-P-33-E |
测评下单 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-33-E |
AssessmentOrder |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-34-E |
测评支付 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-34-E |
支付/`AssessmentQuota |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-35-E |
测评额度 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-35-E |
AssessmentQuota |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-36-E |
测评预约 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-36-E |
AssessmentAppointmentController |
额度不足/过期直接报错不落预约;并发重复提交被拒(幂等);状态机守卫非法回退 |
TC-P-37-E |
预约状态 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-37-E |
AssessmentAppointmentController |
额度不足/过期直接报错不落预约;并发重复提交被拒(幂等);状态机守卫非法回退 |
TC-P-38-E |
预约取消 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-38-E |
AssessmentAppointmentController |
额度不足/过期直接报错不落预约;并发重复提交被拒(幂等);状态机守卫非法回退 |
TC-P-39-E |
DAN报告 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-39-E |
DanAssessmentResultDTO |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-40-E |
AI方案 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-40-E |
AIChatController/AiGateway |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-41-E |
方案迭代 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-41-E |
AIChatController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-42-E |
方案编辑 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-42-E |
方案管理 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-43-E |
方案查看 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-43-E |
方案管理 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-44-E |
方案确认 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-44-E |
方案状态机 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-45-E |
方案发布 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-45-E |
方案管理 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-46-E |
方案激活 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-46-E |
方案激活任务分解 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-47-E |
方案任务 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-47-E |
GrowthPlanController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-48-E |
方案版本 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-48-E |
方案管理 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-49-E |
AI对话 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-49-E |
AIChatController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-50-E |
成长记录 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-50-E |
GrowthController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-51-E |
成长里程碑 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-51-E |
GrowthController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-P-52-E |
商城浏览 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-52-E |
MallController/danshop |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-53-E |
商品详情 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-53-E |
MallController |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-54-E |
商城下单 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-54-E |
MallController |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-55-E |
订单支付 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-55-E |
支付 |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-56-E |
订单退款 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-56-E |
订单服务 |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-57-E |
优惠券 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-57-E |
优惠券 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-P-58-E |
会员购买 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-58-E |
MemberController |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-P-59-E |
会员权益 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-59-E |
MemberController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-60-E |
会员续费 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-60-E |
MemberController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-P-61-E |
联系人 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-61-E |
ContactCard/contact-detail |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-62-E |
联系人导入 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-62-E |
ContactImport |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-63-E |
联系人权限 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-63-E |
ContactCard |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-64-E |
个人资料 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-64-E |
AuthController |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-65-E |
通知设置 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-65-E |
消息服务 |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-66-E |
隐私设置 |
家长 |
P3 |
异常 |
tests/test-cases/parent.md#TC-P-66-E |
隐私设置 |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-67-E |
报告代传/report-proxy |
家长 |
P1 |
异常 |
tests/test-cases/parent.md#TC-P-67-E |
报告代传/report-proxy |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-68-E |
家庭天盘 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-68-E |
家庭天盘 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-69-E |
精准营养 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-69-E |
精准营养 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-70-E |
舌诊情绪识别 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-70-E |
舌诊情绪识别 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-71-E |
AuthController |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-71-E |
AuthController |
并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 |
TC-P-72-E |
数据导出(GDPR) |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-72-E |
数据导出(GDPR) |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-73-E |
家庭/成员 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-73-E |
家庭/成员 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-74-E |
规划师绑定 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-74-E |
规划师绑定 |
并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 |
TC-P-75-E |
优惠券 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-75-E |
优惠券 |
支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 |
TC-P-76-E |
活动管理 |
家长 |
P1 |
异常 |
tests/test-cases/parent.md#TC-P-76-E |
活动管理 |
支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 |
TC-P-77-E |
活动 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-77-E |
活动 |
支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 |
TC-P-78-E |
消息服务 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-78-E |
消息服务 |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-79-E |
消息服务 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-79-E |
消息服务 |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-80-E |
会员/订单 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-80-E |
会员/订单 |
支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 |
TC-P-81-E |
方案/任务 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-81-E |
方案/任务 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活幂等不重复生成任务;失败回滚不残半任务 |
TC-P-82-E |
搜索 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-82-E |
搜索 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-83-E |
客服 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-83-E |
客服 |
字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 |
TC-P-84-E |
分享 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-84-E |
分享 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-85-E |
AuthController |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-85-E |
AuthController |
并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 |
TC-P-86-E |
勋章/排行 |
家长 |
P2 |
异常 |
tests/test-cases/parent.md#TC-P-86-E |
勋章/排行 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-P-01-P |
家庭 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-01-P |
FamilyInviteController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-02-P |
家庭/成员 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-02-P |
FamilyInviteController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-03-P |
成员资料 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-03-P |
FamilyMembersController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-04-P |
关系图 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-04-P |
关系类型 CRUD/前端选择器 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-05-P |
任务 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-05-P |
TaskController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-06-P |
任务审核 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-06-P |
TaskController/PointsController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-07-P |
心愿 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-07-P |
WishController/RewardController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-08-P |
能量 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-08-P |
EnergyController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-09-P |
测评订单 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-09-P |
AssessmentAppointmentController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-10-P |
健康报告 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-10-P |
健康报告上传解析 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-11-P |
报告查看 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-11-P |
报告解析 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-12-P |
饮食推荐 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-12-P |
饮食推荐系统 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-13-P |
AI 方案 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-13-P |
AI 统一走 LangGraph;`AiGateway |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-14-P |
方案提交 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-14-P |
方案状态机 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-15-P |
双角色 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-15-P |
POST /api/family/member/switch`(替代废弃 switch-mode);双角色铁律 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-16-P |
会员 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-16-P |
MembershipController/ProductOrderController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-17-P |
积分/成长 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-17-P |
PointsController/GrowthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-18-P |
AI 对话 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-18-P |
AIChatController`;LangGraph RAG |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-19-P |
能量配置 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-19-P |
维度配置 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-20-P |
健康报告 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-20-P |
报告解析中台/`POST /api/media/upload |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-21-P |
报告解析 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-21-P |
/api/admin/report-parser/types |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-22-P |
报告预览 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-22-P |
解析中台 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-23-P |
报告入库 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-23-P |
解析中台 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-24-P |
报告管理 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-24-P |
报告管理 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-25-P |
报告趋势 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-25-P |
成长/报告 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-26-P |
饮食推荐 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-26-P |
饮食推荐系统 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-27-P |
家庭食谱 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-27-P |
饮食推荐/家庭食谱 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-28-P |
食谱筛选 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-28-P |
饮食推荐 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-29-P |
食谱收藏 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-29-P |
饮食推荐 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-30-P |
食谱营养 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-30-P |
饮食推荐 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-31-P |
测评类型 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-31-P |
DanAssessmentController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-32-P |
测评规划师 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-32-P |
测评订单 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-33-P |
测评下单 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-33-P |
AssessmentOrder |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-34-P |
测评支付 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-34-P |
支付/`AssessmentQuota |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-35-P |
测评额度 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-35-P |
AssessmentQuota |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-36-P |
测评预约 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-36-P |
AssessmentAppointmentController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-37-P |
预约状态 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-37-P |
AssessmentAppointmentController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-38-P |
预约取消 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-38-P |
AssessmentAppointmentController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-39-P |
DAN报告 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-39-P |
DanAssessmentResultDTO |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-40-P |
AI方案 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-40-P |
AIChatController/AiGateway |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-41-P |
方案迭代 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-41-P |
AIChatController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-42-P |
方案编辑 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-42-P |
方案管理 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-43-P |
方案查看 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-43-P |
方案管理 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-44-P |
方案确认 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-44-P |
方案状态机 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-45-P |
方案发布 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-45-P |
方案管理 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-46-P |
方案激活 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-46-P |
方案激活任务分解 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-47-P |
方案任务 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-47-P |
GrowthPlanController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-48-P |
方案版本 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-48-P |
方案管理 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-49-P |
AI对话 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-49-P |
AIChatController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-50-P |
成长记录 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-50-P |
GrowthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-51-P |
成长里程碑 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-51-P |
GrowthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-52-P |
商城浏览 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-52-P |
MallController/danshop |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-53-P |
商品详情 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-53-P |
MallController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-54-P |
商城下单 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-54-P |
MallController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-55-P |
订单支付 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-55-P |
支付 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-56-P |
订单退款 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-56-P |
订单服务 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-57-P |
优惠券 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-57-P |
优惠券 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-58-P |
会员购买 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-58-P |
MemberController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-59-P |
会员权益 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-59-P |
MemberController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-60-P |
会员续费 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-60-P |
MemberController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-61-P |
联系人 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-61-P |
ContactCard/contact-detail |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-62-P |
联系人导入 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-62-P |
ContactImport |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-63-P |
联系人权限 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-63-P |
ContactCard |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-64-P |
个人资料 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-64-P |
AuthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-65-P |
通知设置 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-65-P |
消息服务 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-66-P |
隐私设置 |
家长 |
P2 |
权限 |
tests/test-cases/parent.md#TC-P-66-P |
隐私设置 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-67-P |
报告代传/report-proxy |
家长 |
P0 |
权限 |
tests/test-cases/parent.md#TC-P-67-P |
报告代传/report-proxy |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-68-P |
家庭天盘 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-68-P |
家庭天盘 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-69-P |
精准营养 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-69-P |
精准营养 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-70-P |
舌诊情绪识别 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-70-P |
舌诊情绪识别 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-71-P |
AuthController |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-71-P |
AuthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-72-P |
数据导出(GDPR) |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-72-P |
数据导出(GDPR) |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-73-P |
家庭/成员 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-73-P |
家庭/成员 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-74-P |
规划师绑定 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-74-P |
规划师绑定 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-75-P |
优惠券 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-75-P |
优惠券 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-76-P |
活动管理 |
家长 |
P0 |
权限 |
tests/test-cases/parent.md#TC-P-76-P |
活动管理 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-77-P |
活动 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-77-P |
活动 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-78-P |
消息服务 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-78-P |
消息服务 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-79-P |
消息服务 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-79-P |
消息服务 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-80-P |
会员/订单 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-80-P |
会员/订单 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-81-P |
方案/任务 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-81-P |
方案/任务 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-82-P |
搜索 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-82-P |
搜索 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-83-P |
客服 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-83-P |
客服 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-84-P |
分享 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-84-P |
分享 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-85-P |
AuthController |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-85-P |
AuthController |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-86-P |
勋章/排行 |
家长 |
P1 |
权限 |
tests/test-cases/parent.md#TC-P-86-P |
勋章/排行 |
非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 |
TC-P-N01 |
健康报告 |
家长 |
P1 |
性能 |
tests/test-cases/parent.md#TC-P-N01 |
健康报告上传解析 |
上传+解析 ≤ 30s;超时走 AiGateway 友好降级而非 500;进度可见 |
TC-P-N02 |
AI 方案 |
家长 |
P1 |
性能 |
tests/test-cases/parent.md#TC-P-N02 |
AiGateway/LangGraph |
各方案独立完整、数据不串;单请求 P95 ≤ 15s;LangGraph 超时回退 Fallback |
TC-P-N03 |
任务 |
家长 |
P2 |
性能 |
tests/test-cases/parent.md#TC-P-N03 |
TaskController |
首屏 ≤ 2s;翻页流畅;分页/虚拟滚动生效 |
TC-P-N04 |
全局搜索 |
家长 |
P2 |
性能 |
tests/test-cases/parent.md#TC-P-N04 |
搜索接口 |
搜索结果 ≤ 1.5s;匹配高亮;空结果空态 |
TC-P-N05 |
报告查看 |
家长 |
P2 |
性能 |
tests/test-cases/parent.md#TC-P-N05 |
报告解析 |
列表/详情渲染 ≤ 2s;七维评分刷新不卡顿 |
TC-P-N06 |
双角色 |
家长 |
P1 |
兼容 |
tests/test-cases/parent.md#TC-P-N06 |
双角色铁律 |
四端功能一致;切回家长需密码;孩子端不可回切 |
TC-P-N07 |
饮食推荐 |
家长 |
P2 |
兼容 |
tests/test-cases/parent.md#TC-P-N07 |
饮食推荐 |
推荐列表与可吃/慎吃标签布局正常;图片自适应 |
TC-P-N08 |
设置 |
家长 |
P2 |
兼容 |
tests/test-cases/parent.md#TC-P-N08 |
前端适配 |
无样式错位;可点区域 ≥ 44px;无横向滚动 |
TC-P-N09 |
报告闭环 |
家长 |
P0 |
安全 |
tests/test-cases/parent.md#TC-P-N09 |
报告鉴权 |
返回 403(IDOR 横向越权拦截);不泄露跨家庭数据 |
TC-P-N10 |
AI 对话 |
家长 |
P1 |
安全 |
tests/test-cases/parent.md#TC-P-N10 |
AIChatController |
输入后端 HTML 转义存储/渲染;无脚本执行 |
TC-P-N11 |
健康报告 |
家长 |
P0 |
安全 |
tests/test-cases/parent.md#TC-P-N11 |
上传校验 |
类型/大小校验拒绝(400/413);不落盘执行;不触发解析 |
TC-P-N12 |
双角色 |
家长 |
P1 |
安全 |
tests/test-cases/parent.md#TC-P-N12 |
switch 接口鉴权 |
服务端二次校验身份;篡改无效;不越权 |
TC-P-N13 |
设置 |
家长 |
P1 |
安全 |
tests/test-cases/parent.md#TC-P-N13 |
数据安全 |
无身份证/手机号明文泄露;日志脱敏;状态变更含 CSRF token 校验 |
TC-T-01 |
认证/双角色 |
规划师 |
P0 |
权限 |
tests/test-cases/teacher.md#TC-T-01 |
AuthController`;规划师可切回家长 |
进入仪表板;可切回自身家长视角;越权访问无关家庭被拒 |
TC-T-02 |
家庭绑定 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-02 |
FamilyInviteController |
家庭出现在列表,可见成员;无效码提示失败;重复绑定幂等 |
TC-T-03 |
健康报告 |
规划师 |
P0 |
功能 |
tests/test-cases/teacher.md#TC-T-03 |
报告上传解析;规划师代传 |
报告进入孩子档案;健康列表可见;识别失败进草稿/未知聚类 |
TC-T-04 |
报告审核 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-04 |
报告审核 |
草稿确认入库,健康报告列表可见;确认前可取消不入库 |
TC-T-05 |
方案管理 |
规划师 |
P0 |
功能 |
tests/test-cases/teacher.md#TC-T-05 |
方案管理;黑盒回归项 |
列表正常渲染(无白屏);函数不报未定义 |
TC-T-06 |
方案审核 |
规划师 |
P0 |
功能 |
tests/test-cases/teacher.md#TC-T-06 |
方案状态机 |
状态 generated→reviewed |
TC-T-07 |
方案激活 |
规划师 |
P0 |
功能 |
tests/test-cases/teacher.md#TC-T-07 |
激活拆任务 |
状态 reviewed→active;生成引导任务+模板任务;孩子 B 出现方案启动任务 |
TC-T-08 |
方案激活·幂等 |
规划师 |
P0 |
异常 |
tests/test-cases/teacher.md#TC-T-08 |
幂等约束(黑盒回归) |
返回状态异常提示,不重复生成任务(幂等) |
TC-T-09 |
任务审核 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-09 |
TaskController |
通过→孩子得积分;驳回→退回重做;越权审核非绑定家庭被拒 |
TC-T-10 |
测评录入 |
规划师 |
P0 |
功能 |
tests/test-cases/teacher.md#TC-T-10 |
AssessmentAppointmentController/DanAssessmentController |
结果可见;触发规则引擎自动生成方案(generated);必填缺失→校验拦截;重复录入覆盖 |
TC-T-11 |
成长计划 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-11 |
GrowthPlanController`;黑盒回归 |
列表显示自己创建的计划(childName/状态/时间);不再 400 |
TC-T-12 |
套餐 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-12 |
GuidePackageController |
上架前提交审核;审核通过后可被市场购买;任务项为空→校验拦截 |
TC-T-13 |
数据隔离 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-13 |
控制器内 role 检查 |
非绑定家庭统一 403;仅见绑定家庭数据 |
TC-T-14 |
方案编辑 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-14 |
方案管理 |
编辑后状态标记已改;保存生效 |
TC-T-15 |
套餐任务 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-15 |
GuidePackageController |
空套餐拦截上架;重算后任务项正确 |
TC-T-16 |
健康总览 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-16 |
仪表板 |
数据缺失项降级展示不 500 |
TC-T-17 |
计划进度 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-17 |
GrowthPlanController |
进度计算准确;与任务状态一致 |
TC-T-18 |
批量任务 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-18 |
TaskController |
部分失败不影响其他成员;各自独立落库 |
TC-T-19 |
消息推送 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-19 |
消息服务 |
客户端收到;免打扰设置生效 |
TC-T-20 |
退出/切换 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-20 |
AuthController |
退出清缓存;切回家长视角正常 |
TC-T-21 |
报告对比 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-21 |
报告管理 |
报告类型一致才可比对;差异清晰标注 |
TC-T-22 |
方案归档 |
规划师 |
P2 |
功能 |
tests/test-cases/teacher.md#TC-T-22 |
方案管理 |
归档后方案仅可读,不可再编辑/激活 |
TC-T-23 |
报告代传/report-proxy |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-23 |
报告代传/report-proxy |
达成目标:帮客户上传;边界:非绑定家庭拒;识别失败进草稿 |
TC-T-24 |
规划师绑定 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-24 |
规划师绑定 |
达成目标:更换绑定;边界:在途方案/预约处理;非绑定家庭不可操作 |
TC-T-25 |
舌诊情绪识别 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-25 |
舌诊情绪识别 |
达成目标:录入识别结果;边界:识别失败回退人工 |
TC-T-26 |
精准营养 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-26 |
精准营养 |
达成目标:基于营养目标出方案;边界:目标非法拦截 |
TC-T-27 |
家庭天盘 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-27 |
家庭天盘 |
达成目标:给家庭看聚合视图并解读;边界:仅绑定家庭可见 |
TC-T-28 |
内容安全 |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-28 |
内容安全 |
达成目标:复核 AI 敏感内容;边界:命中即拦截 |
TC-T-29 |
数据导出(GDPR) |
规划师 |
P1 |
功能 |
tests/test-cases/teacher.md#TC-T-29 |
数据导出(GDPR) |
达成目标:导出客户数据;边界:授权/脱敏;越权拒 |
TC-T-01-E |
认证/双角色 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-01-E |
AuthController`;规划师可切回家长 |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-T-02-E |
家庭绑定 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-02-E |
FamilyInviteController |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-T-03-E |
健康报告 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-03-E |
报告上传解析;规划师代传 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-04-E |
报告审核 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-04-E |
报告审核 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-05-E |
方案管理 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-05-E |
方案管理;黑盒回归项 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-06-E |
方案审核 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-06-E |
方案状态机 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-07-E |
方案激活 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-07-E |
激活拆任务 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-08-E |
方案激活·幂等 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-08-E |
幂等约束(黑盒回归) |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-09-E |
任务审核 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-09-E |
TaskController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-T-10-E |
测评录入 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-10-E |
AssessmentAppointmentController/DanAssessmentController |
额度不足/过期直接报错不落预约;并发重复提交被拒(幂等);状态机守卫非法回退 |
TC-T-11-E |
成长计划 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-11-E |
GrowthPlanController`;黑盒回归 |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-T-12-E |
套餐 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-12-E |
GuidePackageController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-13-E |
数据隔离 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-13-E |
控制器内 role 检查 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-T-14-E |
方案编辑 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-14-E |
方案管理 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-15-E |
套餐任务 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-15-E |
GuidePackageController |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-16-E |
健康总览 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-16-E |
仪表板 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-T-17-E |
计划进度 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-17-E |
GrowthPlanController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-T-18-E |
批量任务 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-18-E |
TaskController |
重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 |
TC-T-19-E |
消息推送 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-19-E |
消息服务 |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-T-20-E |
退出/切换 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-20-E |
AuthController |
token 过期/缺失统一 401 跳登录;孩子端无切回家长入口;越权切换被拒;模拟登录仅测试环境生效 |
TC-T-21-E |
报告对比 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-21-E |
报告管理 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-22-E |
方案归档 |
规划师 |
P3 |
异常 |
tests/test-cases/teacher.md#TC-T-22-E |
方案管理 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 |
TC-T-23-E |
报告代传/report-proxy |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-23-E |
报告代传/report-proxy |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-24-E |
规划师绑定 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-24-E |
规划师绑定 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-25-E |
舌诊情绪识别 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-25-E |
舌诊情绪识别 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-26-E |
精准营养 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-26-E |
精准营养 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-27-E |
家庭天盘 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-27-E |
家庭天盘 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-T-28-E |
内容安全 |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-28-E |
内容安全 |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活幂等不重复生成任务;失败回滚不残半任务 |
TC-T-29-E |
数据导出(GDPR) |
规划师 |
P2 |
异常 |
tests/test-cases/teacher.md#TC-T-29-E |
数据导出(GDPR) |
LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活幂等不重复生成任务;失败回滚不残半任务 |
TC-T-01-P |
认证/双角色 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-01-P |
AuthController`;规划师可切回家长 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-02-P |
家庭绑定 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-02-P |
FamilyInviteController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-03-P |
健康报告 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-03-P |
报告上传解析;规划师代传 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-04-P |
报告审核 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-04-P |
报告审核 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-05-P |
方案管理 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-05-P |
方案管理;黑盒回归项 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-06-P |
方案审核 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-06-P |
方案状态机 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-07-P |
方案激活 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-07-P |
激活拆任务 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-08-P |
方案激活·幂等 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-08-P |
幂等约束(黑盒回归) |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-09-P |
任务审核 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-09-P |
TaskController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-10-P |
测评录入 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-10-P |
AssessmentAppointmentController/DanAssessmentController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-11-P |
成长计划 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-11-P |
GrowthPlanController`;黑盒回归 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-12-P |
套餐 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-12-P |
GuidePackageController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-13-P |
数据隔离 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-13-P |
控制器内 role 检查 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-14-P |
方案编辑 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-14-P |
方案管理 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-15-P |
套餐任务 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-15-P |
GuidePackageController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-16-P |
健康总览 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-16-P |
仪表板 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-17-P |
计划进度 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-17-P |
GrowthPlanController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-18-P |
批量任务 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-18-P |
TaskController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-19-P |
消息推送 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-19-P |
消息服务 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-20-P |
退出/切换 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-20-P |
AuthController |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-21-P |
报告对比 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-21-P |
报告管理 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-22-P |
方案归档 |
规划师 |
P2 |
权限 |
tests/test-cases/teacher.md#TC-T-22-P |
方案管理 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) |
TC-T-23-P |
报告代传/report-proxy |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-23-P |
报告代传/report-proxy |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 |
TC-T-24-P |
规划师绑定 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-24-P |
规划师绑定 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 |
TC-T-25-P |
舌诊情绪识别 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-25-P |
舌诊情绪识别 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 |
TC-T-26-P |
精准营养 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-26-P |
精准营养 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 |
TC-T-27-P |
家庭天盘 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-27-P |
家庭天盘 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 |
TC-T-28-P |
内容安全 |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-28-P |
内容安全 |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 |
TC-T-29-P |
数据导出(GDPR) |
规划师 |
P1 |
权限 |
tests/test-cases/teacher.md#TC-T-29-P |
数据导出(GDPR) |
非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒 |
TC-T-N01 |
健康报告 |
规划师 |
P1 |
性能 |
tests/test-cases/teacher.md#TC-T-N01 |
报告解析中台 |
队列不堵;单份 ≤ 30s;失败重试不重复入库 |
TC-T-N02 |
方案审核 |
规划师 |
P1 |
性能 |
tests/test-cases/teacher.md#TC-T-N02 |
方案状态机 |
列表 ≤ 2s;筛选/排序生效 |
TC-T-N03 |
绑定家庭 |
规划师 |
P2 |
性能 |
tests/test-cases/teacher.md#TC-T-N03 |
绑定家庭 |
切换 ≤ 1.5s;数据隔离不串 |
TC-T-N04 |
报告代传 |
规划师 |
P1 |
兼容 |
tests/test-cases/teacher.md#TC-T-N04 |
代传入口 |
上传入口一致;解析预览正常 |
TC-T-N05 |
健康报告 |
规划师 |
P0 |
安全 |
tests/test-cases/teacher.md#TC-T-N05 |
规划师鉴权 |
返回 403(非绑定家庭越权拦截);不泄露 |
TC-T-N06 |
方案审核 |
规划师 |
P0 |
安全 |
tests/test-cases/teacher.md#TC-T-N06 |
方案鉴权 |
服务端归属校验;非法操作 403/拒绝 |
TC-T-N07 |
舌诊录入 |
规划师 |
P1 |
安全 |
tests/test-cases/teacher.md#TC-T-N07 |
上传校验 |
类型校验拒绝;不执行;存储路径随机化防遍历 |
TC-T-N08 |
精准营养 |
规划师 |
P1 |
安全 |
tests/test-cases/teacher.md#TC-T-N08 |
方案内容安全 |
后端转义存储;前端不执行 |
TC-S-01 |
入驻 |
服务商 |
P1 |
功能 |
tests/test-cases/vendor.md#TC-S-01 |
ServiceRoleApplicationController/AdminEcomSupplierController |
进入运营审核队列;审核通过→获得供应商身份;资质缺失→驳回说明;重复申请幂等 |
TC-S-02 |
商品 |
服务商 |
P0 |
接口 |
tests/test-cases/vendor.md#TC-S-02 |
ProductController/AdminProductController |
商品在商城可见;库存/价格即时生效;字段校验错误→400;负价格/负库存拦截;下架不可购买 |
TC-S-03 |
订单 |
服务商 |
P0 |
功能 |
tests/test-cases/vendor.md#TC-S-03 |
ProductOrderController |
订单状态正确流转;客户可见物流/核销码;重复发货幂等;核销码校验防冒用 |
TC-S-04 |
订单核销 |
服务商 |
P0 |
功能 |
tests/test-cases/vendor.md#TC-S-04 |
订单服务 |
重复核销幂等;超期订单提示不可核销 |
TC-S-05 |
库存 |
服务商 |
P1 |
功能 |
tests/test-cases/vendor.md#TC-S-05 |
库存服务 |
负库存拦截;同步后前台可见 |
TC-S-06 |
售后 |
服务商 |
P1 |
功能 |
tests/test-cases/vendor.md#TC-S-06 |
售后 |
重复退款拦截;退款流水可追溯 |
TC-S-07 |
活动报名 |
服务商 |
P2 |
功能 |
tests/test-cases/vendor.md#TC-S-07 |
活动管理 |
活动失效不可报;报名后商品出现活动标 |
TC-S-08 |
对账 |
服务商 |
P1 |
功能 |
tests/test-cases/vendor.md#TC-S-08 |
结算 |
账期计算正确;结算后状态更新 |
TC-S-9 |
服务商集成/解析中台 |
服务商 |
P1 |
功能 |
tests/test-cases/vendor.md#TC-S-9 |
服务商集成/解析中台 |
达成目标:提供解析能力;边界:跨商户隔离;鉴权 |
TC-S-10 |
食谱库 |
服务商 |
P1 |
功能 |
tests/test-cases/vendor.md#TC-S-10 |
食谱库 |
达成目标:供食谱数据;边界:数据合规;格式校验 |
TC-S-11 |
合规 |
服务商 |
P1 |
功能 |
tests/test-cases/vendor.md#TC-S-11 |
合规 |
达成目标:授权内用数;边界:越授权拒;脱敏 |
TC-S-01-E |
入驻 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-01-E |
ServiceRoleApplicationController/AdminEcomSupplierController |
系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 |
TC-S-02-E |
商品 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-02-E |
ProductController/AdminProductController |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-S-03-E |
订单 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-03-E |
ProductOrderController |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-S-04-E |
订单核销 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-04-E |
订单服务 |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-S-05-E |
库存 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-05-E |
库存服务 |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-S-06-E |
售后 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-06-E |
售后 |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-S-07-E |
活动报名 |
服务商 |
P3 |
异常 |
tests/test-cases/vendor.md#TC-S-07-E |
活动管理 |
标题/名称重复被拦截;参数非法统一 400 非 500;长文稳定无超时;操作可逆或有确认 |
TC-S-08-E |
对账 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-08-E |
结算 |
支付失败订单回滚不进入已支付;重复提交幂等;负价格/负库存/参数非法统一 400 拦截;重复核销/退款幂等 |
TC-S-9-E |
服务商集成/解析中台 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-9-E |
服务商集成/解析中台 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-S-10-E |
食谱库 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-10-E |
食谱库 |
识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 |
TC-S-11-E |
合规 |
服务商 |
P2 |
异常 |
tests/test-cases/vendor.md#TC-S-11-E |
合规 |
并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 |
TC-S-01-P |
入驻 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-01-P |
ServiceRoleApplicationController/AdminEcomSupplierController |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-02-P |
商品 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-02-P |
ProductController/AdminProductController |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-03-P |
订单 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-03-P |
ProductOrderController |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-04-P |
订单核销 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-04-P |
订单服务 |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-05-P |
库存 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-05-P |
库存服务 |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-06-P |
售后 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-06-P |
售后 |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-07-P |
活动报名 |
服务商 |
P2 |
权限 |
tests/test-cases/vendor.md#TC-S-07-P |
活动管理 |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-08-P |
对账 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-08-P |
结算 |
非本服务商资源操作被拒;核销码校验防冒用;跨商户数据隔离 |
TC-S-9-P |
服务商集成/解析中台 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-9-P |
服务商集成/解析中台 |
非本商户资源隔离,跨商户访问 403 |
TC-S-10-P |
食谱库 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-10-P |
食谱库 |
非本商户资源隔离,跨商户访问 403 |
TC-S-11-P |
合规 |
服务商 |
P1 |
权限 |
tests/test-cases/vendor.md#TC-S-11-P |
合规 |
非本商户资源隔离,跨商户访问 403 |
TC-S-N01 |
商品 |
服务商 |
P2 |
性能 |
tests/test-cases/vendor.md#TC-S-N01 |
商品管理 |
列表 ≤ 2s;筛选生效 |
TC-S-N02 |
订单履约 |
服务商 |
P1 |
性能 |
tests/test-cases/vendor.md#TC-S-N02 |
订单服务 |
查询 ≤ 2s;状态流转即时 |
TC-S-N03 |
入驻 |
服务商 |
P2 |
兼容 |
tests/test-cases/vendor.md#TC-S-N03 |
服务商后台 |
表单布局正常;上传兼容 |
TC-S-N04 |
订单履约 |
服务商 |
P0 |
安全 |
tests/test-cases/vendor.md#TC-S-N04 |
商户隔离 |
返回 403(跨商户隔离);不泄露他商数据 |
TC-S-N05 |
报告解析接入 |
服务商 |
P0 |
安全 |
tests/test-cases/vendor.md#TC-S-N05 |
上传校验 |
类型/大小校验;不执行;存储隔离 |
TC-S-N06 |
营养食谱 |
服务商 |
P1 |
安全 |
tests/test-cases/vendor.md#TC-S-N06 |
内容安全 |
内容转义存储/渲染;不执行 |