Răsfoiți Sursa

test: 新增 TC-X-22 CF 值获取预估三流用例(含能量侧反向隔离)

liaoxg 1 săptămână în urmă
părinte
comite
5b5fb928dc
1 a modificat fișierele cu 21 adăugiri și 0 ștergeri
  1. 21 0
      tests/test-cases/cross-role-e2e.md

+ 21 - 0
tests/test-cases/cross-role-e2e.md

@@ -142,6 +142,27 @@
 | TC-X-20-P | 五维能量对账 | 跨角色 | P1 | 权限 | 家庭1 + F9 | 1. 家长 A 对 F9 成员做能量对账/导出 | 非本家庭数据 403、不泄露 | X-20 |
 | TC-X-20-P | 五维能量对账 | 跨角色 | P1 | 权限 | 家庭1 + F9 | 1. 家长 A 对 F9 成员做能量对账/导出 | 非本家庭数据 403、不泄露 | X-20 |
 | TC-X-21-P | 多来源并发能量 | 跨角色 | P1 | 权限 | 家庭1 + F9 | 1. 家长 A 触发 F9 成员并发能量变更 | 非本家庭成员变更 403 | X-21 |
 | TC-X-21-P | 多来源并发能量 | 跨角色 | P1 | 权限 | 家庭1 + F9 | 1. 家长 A 触发 F9 成员并发能量变更 | 非本家庭成员变更 403 | X-21 |
 
 
+## CF 值获取预估专项用例(本轮新增 SC-X-22)
+
+> 对应场景:`../user-scenarios/应用场景总览.md` § 八 **SC-X-22 · CF 值获取预估(全局 UI 规范)**。
+> **口径前提(已确认)**:CF 值(`RewardRuleService`)与五维能量(`EnergyRuleEngine`,ED-1~17)**不同源、独立记账、互不换算**。本组用例除验证「预估正确展示」外,必须验证**能量侧不出现 CF 提示**(见 `TC-X-22-E` 第 5 步、`TC-X-22` 第 6 步的反向断言)。
+
+### 正常流
+| TC 编号 | 环节 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联场景/用例 |
+|---|---|---|---|---|---|---|---|---|
+| TC-X-22 | CF 值获取预估 · 全局一致展示 | 跨角色 | P0 | 功能 | 家庭1(家长A+孩子B);CF 规则已配置:任务审核通过 +20、方案任务打卡 +10、商城下单满 99 +50;B 当日 CF 与五维能量均未触顶;已装各端 | 1. 家长端创建任务下发(SC-P-10),孩子端打开任务列表,观察任务项入口<br>2. 孩子端打开方案任务打卡页(SC-C-05),观察打卡按钮<br>3. 家长端打开商城商品详情/下单页(SC-X-07),观察下单按钮<br>4. 规划师审核任务通过(SC-T-6),家长端观察审核页按钮预估<br>5. 抓包核对各入口接口响应中的 `expectedCf`<br>6. 打开孩子端五维能量页(SC-C-06)与家长端能量页(SC-P-17) | 1. 任务项入口展示「本操作预计获得 20 CF」(或等效统一文案)<br>2. 打卡按钮展示「本操作预计获得 10 CF」<br>3. 下单按钮展示「本操作预计获得 50 CF」(非满额提示「本单无 CF 奖励」)<br>4. 审核按钮展示「本操作将发放 20 CF」<br>5. 各接口返回 `expectedCf` 数值与页面展示**完全一致**,单位/图标/文案风格全局统一<br>6. **五维能量页不出现任何 CF 字样或 CF 预估**(反向断言通过) | X-22 / P-10、C-05、X-07、T-6 |
+
+### 异常流(-E,具体故障注入)
+| TC 编号 | 环节 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联场景/用例 |
+|---|---|---|---|---|---|---|---|---|
+| TC-X-22-E | CF 预估≠实际 · 边界与反向隔离 | 跨角色 | P1 | 异常 | 家庭1;CF 规则可配活动倍率/日上限;可注入规则未配置、超时 | 1. 规则配「活动 2 倍 CF」,打卡入口展示 20,操作前把活动置为结束,再完成打卡<br>2. 设当日 CF 上限 20,已累计 15,入口预估 20,完成操作<br>3. 用同一 `idempotency-key` 重放打卡请求 5 次<br>4. 清空该产出点奖励规则 / 打桩使预估接口超时 3s,观察入口<br>5. **反向隔离**:在能量变动入口(任务审批 SC-P-87、方案打卡 SC-C-25、手动 grant SC-P-89、文章互动 SC-P-93)分别注入一次能量变动<br>6. 构造同一操作同时产 CF(+20) 与能量(智 +5),观察回执与页面 | 1. 回执展示「实际 +10 CF(预估 20,原因:活动已结束)」,账目按 10 入账、不回溯历史<br>2. 展示「已达今日上限,本次实际 +5 CF」,余额精确 +5 不超上限<br>3. 仅第 1 次入账并提示获得,后 4 次不重复入账、不再提示「获得」,流水仅 1 条<br>4. 入口降级为「CF 奖励以实际为准」或不展示预估,接口不返回 500、页面不白屏、不阻塞下单/打卡<br>5. **四个能量入口页面与接口均不返回 `expectedCf`、不展示任何「+N CF」文案**;能量变动仅按五维口径展示(如「智 +5」)<br>6. CF 与能量**分别展示为两个独立数字**,不合并为单一数字,不出现「+20 CF 能量」类混写 | X-22 / P-87、C-25、P-89、P-93 |
+| TC-X-22-E2 | CF 预估 · 规则为 0 与负向消耗 | 跨角色 | P2 | 异常 | 规则存在但值为 0;存在消耗型产出点(心愿兑换/商城兑换) | 1. 规则值为 0 的产出点观察入口<br>2. 打开心愿兑换确认页(SC-P-13)与孩子商城兑换页(SC-C-04)<br>3. 打开会员购买页(SC-X-12)观察续费场景 | 1. 展示「本操作无 CF 奖励」或省略,不展示「+0 CF」<br>2. 消耗型展示负向文案「本操作将消耗 N CF」(非「获得」),不误用获得型预估<br>3. 无新增发放的场景不展示获得型预估 | X-22 / P-13、C-04、X-12 |
+
+### 权限流(-P)
+| TC 编号 | 环节 | 角色 | 优先级 | 类型 | 前置条件 | 测试步骤 | 预期结果 | 关联场景/用例 |
+|---|---|---|---|---|---|---|---|---|
+| TC-X-22-P | CF 预估 · 越权与防伪造 | 跨角色 | P1 | 权限 | 家庭1(A+B)、无关家庭 F9、游客账号、孩子/服务商/运营账号 | 1. 游客/未登录打开任一 CF 产出点入口<br>2. 孩子 token 调家长侧产出点预估接口(如活动打卡预估、套餐购买预估)<br>3. 家长 A 请求 F9 成员的产出点预估<br>4. 非 admin 调用奖励规则读接口、尝试改规则<br>5. 客户端在请求体中伪造 `expectedCf=999999` 提交下单/打卡 | 1. 不展示预估或展示「登录后可见」,不泄露规则数值<br>2. 角色不符 403,不返回预估<br>3. 403,不返回他人 `expectedCf`<br>4. 读规则 403;改规则 403 且规则未被改动<br>5. 服务端**忽略客户端传值**,以 `RewardRuleService` 服务端计算为准,入账金额等于真实规则值 | X-22 / P-77、X-07 |
+
 ## 非功能测试用例(性能 / 兼容 / 安全)
 ## 非功能测试用例(性能 / 兼容 / 安全)
 
 
 > 非功能维度覆盖主链路并发/限流、跨角色越权与隔离、多端会话互斥、文件上传统一校验。(越权/上传拒绝/权限提升等见 `e2e/api/nonfunc-security.spec.js`;并发隔离 TC-X-N01、限流稳定性 TC-X-N02、多端 UA 兼容 TC-X-N07 见 `e2e/api/nonfunc-perf-compat.spec.js`;TC-X-N05、TC-X-N08 参见 security 规格)
 > 非功能维度覆盖主链路并发/限流、跨角色越权与隔离、多端会话互斥、文件上传统一校验。(越权/上传拒绝/权限提升等见 `e2e/api/nonfunc-security.spec.js`;并发隔离 TC-X-N01、限流稳定性 TC-X-N02、多端 UA 兼容 TC-X-N07 见 `e2e/api/nonfunc-perf-compat.spec.js`;TC-X-N05、TC-X-N08 参见 security 规格)