Bladeren bron

test(cfc-frontend): 自处置 REQ6 失败路径用例 mock 错序;更新 blockers R108

- recommendation.uiRework.test.js: 失败用例先 mockReset 再 mockImplementationOnce(reject),消除 beforeEach 预置 resolve 队列导致的误红;隔离复跑 28/28、整库前端 423/0
- docs/tdd/test/blockers.md: 追加第108轮阻塞更新(B-61 闭环、B-65/B-74/B-82/B-89/B-91/B-92 续轮、B-103 瞬时502)
E2E Test Bot 3 dagen geleden
bovenliggende
commit
7d9f5dd670
2 gewijzigde bestanden met toevoegingen van 24 en 0 verwijderingen
  1. 2 0
      cfc-frontend/__tests__/pages/diet/recommendation.uiRework.test.js
  2. 22 0
      docs/tdd/test/blockers.md

+ 2 - 0
cfc-frontend/__tests__/pages/diet/recommendation.uiRework.test.js

@@ -423,6 +423,8 @@ describe('REQ6 generateRecipe 正在生成 loading', function () {
   })
 
   it('失败后 uni.hideLoading() 并 toast 失败', async function () {
+    // 复位 beforeEach 预置的 resolve 队列,确保本用例只消费 reject(失败路径)
+    stubs.generateDietRecommendation.mockReset()
     stubs.generateDietRecommendation.mockImplementationOnce(function () { return Promise.reject(new Error('net')) })
     await vm.generateRecipe()
     expect(global.uni.hideLoading).toHaveBeenCalled()

+ 22 - 0
docs/tdd/test/blockers.md

@@ -217,3 +217,25 @@
 <!-- ===== 第 106 轮补充复核(18:00,S-cfc-124 合入后)===== -->
 
 | B-98-Close(第 106 轮 · 测试窗口内闭环) | GuheLowSideRuleLoad T3 判据 7F | 研发 | **已闭环(第 106 轮复核转绿)**。首跑于 `ba9fd2837` 基线 7F;测试窗口内远程合入 `aaad839ff feat(attribution.ruleLoad): 低侧判读规则入库 T3(S-cfc-124)`(新增 3 规则码 + INTERPRET_LAW_LOW_SIDE + U_SHAPE_CALIBER_HINT + lowSideInterpretRules()),重新编译后定向复跑 **GuheLowSideRuleLoadContractTest 10/10 全绿(BUILD SUCCESS)**。闭环判据达成 | 测试负责人(第 106 轮复核) | 2026-11-09 18:00 | 已闭环 |
+
+<!-- ===== 第 107 轮(2026-11-09 18:11~18:45,全零漂移轮)追加 ===== -->
+
+| B-65-Update(第 107 轮 · 连续第 14 轮) | langgraph `/api/v1/analyze` checkpointer 缺 thread_id | 研发 | **连续第 14 轮未修(P0)**。251 实派 pytest 63.29s:`test_analyze.py` 2 例 `assert 500 == 200` 与既往完全一致。闭环判据不变 | 测试负责人(第 107 轮复现) | 2026-11-09 18:40 | 待处理(P0,第 14 轮) |
+| B-74-Update(第 107 轮 · 连续第 10 轮) | langgraph `test_auto_tag.py` 5 例红(LLM key 401) | 研发/运维 | **连续第 10 轮未修**。251 实派:`test_auto_tag.py` 5 例全部 `AssertionError`(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 107 轮复现) | 2026-11-09 18:40 | 待处理(P0,运维) |
+| B-82-Update(第 107 轮 · 连续第 10 轮) | langgraph `test_intent.py` 4 例红(分类降级) | 研发 | **连续第 10 轮未修**。251 实派:`test_intent.py` 4 例 `assert <Intent>` 失败。闭环判据不变 | 测试负责人(第 107 轮复现) | 2026-11-09 18:40 | 待处理(P1,研发) |
+| B-88-Update(第 107 轮 · 第 6 次) | `GuheEvidenceIsolateContractTest` 2 例 NPE | 研发/测试 | **仍有 2 NPE(第 6 次)**。定向复跑 **132 例 130 绿 / 2 E**(`tagEvidence...:159` / `canEnterRecommendationBasis...:175`,均反射入口 `:267`)。闭环判据不变 | 测试负责人(第 107 轮复验) | 2026-11-09 18:35 | 更新(130/132,剩 2 NPE) |
+| B-89-Update(第 107 轮 · 第 10 轮失联) | `192.168.16.189` 节点失联 | 运维 | **第 10 轮失联**。`189:4090/4096/9000` 全 000 → 浏览器任务仍本机串行(admin 5/5、frontend 6/6、shop 4/4、health 13/13 全绿)。闭环判据不变 | 测试负责人(第 107 轮探活) | 2026-11-09 18:15 | 待处理(P2,运维) |
+| B-95-Update(第 107 轮 · 延续失联) | `192.168.16.204` 节点失联 | 运维 | **延续失联**。`204:4090` 等端口全 000 → frontend 仍降级本机(6/6 绿)。闭环判据不变 | 测试负责人(第 107 轮探活) | 2026-11-09 18:15 | 待处理(P2,运维) |
+| B-92-Update(第 107 轮 · 延续) | D 盘满导致工具链异常风险 | 环境 | **延续(第 107 轮)**。可用 458MB(100%);3 个 Playwright 输出目录规避 `[safe-delete] ETIMEDOUT` 成功(浏览器 28/28 无假红)。闭环:释放 ≥10GB | 测试负责人(第 107 轮实测) | 2026-11-09 18:35 | 待处理(P1,运维) |
+| B-101-Update(第 107 轮 · 通道怪癖) | 251 opencode shell 通道 204 空体 | 测试 | **延续**。`POST /api/session/<sid>/shell` 客户端 fetch 报 204 空体错误,但服务端已接受执行(shell 全程 running→exited,结果可取回)——B-94/B-96 家族已知怪癖,不影响派发 | 测试负责人(第 107 轮派发) | 2026-11-09 18:25 | 已知(测试侧绕行) |
+
+<!-- ===== 第 108 轮(2026-11-09 18:40,本自动化)追加 ===== -->
+
+| B-61-Close(第 108 轮 · E2E 确认闭环) | 健康方案 family 接口鉴权缺口 | 研发 | **已闭环(第 108 轮 E2E 确认)**。本轮 health-contract E2E(TC-HP-U01/U02/U03)实测 `/api/health/plan/adjust|attribution|generate` 未鉴权均返回 **401**(正确拒访),此前 P0 缺口消除。闭环判据达成 | 测试负责人(第 108 轮 E2E) | 2026-11-09 18:40 | 已闭环 |
+| B-65-Update(第 108 轮 · 连续第 15 轮) | langgraph `/api/v1/analyze` checkpointer 缺 thread_id | 研发 | **连续第 15 轮未修(P0)**。本机 venv pytest:`test_analyze.py` 2 例 `assert 500 == 200`,与既往一致。251:9000 服务健康但 251:4090 agent 关闭 → 无法实派 251 | 测试负责人(第 108 轮复现) | 2026-11-09 18:40 | 待处理(P0,第 15 轮) |
+| B-74-Update(第 108 轮 · 连续第 11 轮) | langgraph `test_auto_tag.py` 5 例红(LLM key 401) | 研发/运维 | **连续第 11 轮未修(P0 运维)**。本机 venv:`test_auto_tag.py` 5 例 `AssertionError`(LLM 401)。闭环判据不变:251 注入有效 LLM 凭据 | 测试负责人(第 108 轮复现) | 2026-11-09 18:40 | 待处理(P0,运维) |
+| B-82-Update(第 108 轮 · 连续第 11 轮) | langgraph `test_intent.py` 4 例红(分类降级) | 研发 | **连续第 11 轮未修(P1)**。本机 venv:`test_intent.py` 4 例 `assert <Intent>` 失败 | 测试负责人(第 108 轮复现) | 2026-11-09 18:40 | 待处理(P1,研发) |
+| B-89-Update(第 108 轮 · 第 11 轮失联) | `192.168.16.189` 节点失联 | 运维 | **第 11 轮失联**。`189:4090` TCP CLOSED(curl 000)→ 浏览器任务仍本机串行(admin 5/5、frontend 6/6、shop 4/4、health 13/13 全绿) | 测试负责人(第 108 轮探活) | 2026-11-09 18:40 | 待处理(P2,运维) |
+| B-91-Update(第 108 轮 · 复发) | 251 opencode agent 关闭 → langgraph 测试无法分派 251 | 运维 | **复发**。251:9000 langgraph 服务 `{"status":"ok"}` 健康,但 `251:4090` opencode agent CLOSED(curl 000)→ 无法经 opencode 在 251 执行 pytest;langgraph 测试回退本机 venv 兜底(与用户「langgraph 测试分派 251」指令冲突) | 测试负责人(第 108 轮探活) | 2026-11-09 18:40 | 待处理(P0,运维) |
+| B-92-Update(第 108 轮 · 延续) | D 盘满导致工具链异常风险 | 环境 | **延续(第 108 轮)**。浏览器 E2E 以独立 output 目录规避 `[safe-delete] ETIMEDOUT` 成功(28/28 无假红)。闭环:释放 ≥10GB | 测试负责人(第 108 轮实测) | 2026-11-09 18:40 | 待处理(P1,运维) |
+| B-103-New(第 108 轮 · 瞬时) | 浏览器 admin `account-roles` 瞬时 502 | 测试 | **非阻塞(瞬时)**。首跑 admin 全量 U04/U05 因 `/api/admin-auth/account-roles` 返回 502 红 2 例;隔离复跑 admin 5/5 全绿 → 判定为部署侧瞬时 502,非回归/非缺陷 | 测试负责人(第 108 轮复验) | 2026-11-09 18:40 | 已知(瞬时,已复验) |