Преглед изворни кода

test(lead): R79 闭环汇报 - frontend 执行范围扩至19套件/343(14 RED=S-cfc-35/38 生日性别采集未实现) + B-62 登记 + admin/frontend/shop/health/web/langgraph 与R78一致

E2E Test Bot пре 5 дана
родитељ
комит
e21ba54dff

+ 178 - 0
docs/tdd/orchestration/report-test-2026-11-08-0323.md

@@ -0,0 +1,178 @@
+# 测试负责人工作汇报 · 2026-11-08 03:23 轮(R79)
+
+> 模板版本:v1.1(2026-11-03)· 适用对象:测试负责人 / 测试角色会话
+> 详细执行证据与五要素问题清单:`docs/tdd/test/automation-run-2026-11-08-0323.md`
+
+---
+
+## 基本信息
+
+| 项目 | 内容 |
+|------|------|
+| 汇报人 | 陆谨(软件测试专家团主理人 · 测试负责人) |
+| 汇报周期 | 2026-11-08 02:47 (R78) ~ 2026-11-08 03:23(R79 轮) |
+| 负责模块/单元 | cfc 全栈(backend/web/frontend/tests/cfc-langgraph)+ E2E 浏览器自动化 |
+| 执行档 | review(内网 `cfc.iwintrue.com` /admin 与 /frontend + 配套 /api 只读探测;禁止公网;只读,不修改/提交/推送生产源码) |
+
+---
+
+## 一、本轮工作数据汇总
+
+### 1.1 测试用例建设
+
+| 指标 | 数量 | 填写说明 |
+|------|------|----------|
+| **本轮新增测试用例数** | 0 个 | 本轮回测未新增用例;2 个 RED 契约套件(`join-form.required-info`、`joinRequestCardInfo`,S-cfc-35/S-cfc-38)此前已入库,本轮被 jest 发现范围纳入执行 |
+| **本轮验证执行测试数** | 504 个(本机实测:admin 5 + frontend 6 + shop 4 + health 13 + frontend Jest 343 + web Jest 90 + langgraph 兜底 43)+ 后端基线 2903(复用) | 含全态 |
+| **用例通过率** | 本机实测 469/504 = **93.1%**(不含后端基线);后端基线并入后 3353/3407 = 98.4% | 不含后端基线为 93.1% |
+
+### 1.2 会话与任务分发
+
+| 指标 | 数量 | 填写说明 |
+|------|------|----------|
+| **分派任务数** | 0 个 | 浏览器任务按历史最优实践**本机直跑**;189/251 远程派发仍不可用,不重复派发 |
+| **恢复智能体会话数** | 0 个 | — |
+| **当前在用会话数** | 0 个(本自动化无常驻会话) | — |
+
+### 1.2b 各会话当前工作状态列表
+
+| 会话标签 | 会话 ID | 当前状态 | 当前任务 | 静默/空闲时长 | 工作目录 | 备注 |
+|----------|---------|----------|----------|---------------|----------|------|
+| `web-4091`(本机 opencode) | localhost:4091 | idle(API 可认证) | — | — | 不干净 | 仅探活,未派发任务 |
+| `web-189-4090`(189) | 192.168.16.189:4090 | unknown(API 可认证) | — | — | — | B-56:agent 零产出 |
+| `web-204-4091`(204) | 192.168.16.204:4091 | unknown(API 可认证) | — | — | — | B-56:探针复现零产出 |
+| `junit/251` | 192.168.16.251 | unreachable(9000/4090 closed) | — | — | — | langgraph 无法按指令派发 |
+
+> 说明:189/204 的 opencode 建会话成功但 assistant 零产出(B-56 复现);251:9000/4090 CLOSED → langgraph 按指令派发 251 不可行,本轮以本机 venv 兜底实测(结果仅作线索,非权威)。
+
+### 1.3 问题处置
+
+| 指标 | 数量 | 填写说明 |
+|------|------|----------|
+| **新测试发现问题数** | 1 类(前端 14 例 RED 契约进入执行范围,实际为既有 RED 套件此前未被 R78 报告纳入) | 见下文「本轮变化」 |
+| **已解决测试相关问题数** | 0 个 | — |
+| **待解决测试相关问题数** | 7 个(P0×1 延续 + P1×5 + B-56 P2×1 延续) | 详见第三节 |
+
+### 1.4 本轮 git 提交与推送证据(真理证据)
+
+| 提交 sha | 关联任务/能力键 | 阶段 | 触及文件类型 | 目标分支 | 已推送远端 | 备注 |
+|----------|-----------------|------|--------------|----------|------------|------|
+| 见文末 | — | 报告/用例 | 测试 | cfclub | 待推送 | 本轮报告 + B-62 登记提交推送 |
+
+### 1.5 状态机阶段分布(全局进度)
+
+| 阶段 | 键数 | 备注 |
+|------|------|------|
+| UNTRACKED | — | 本闭环以发现/跟踪为主 |
+| RED | 2 套件落地(S-cfc-35/S-cfc-38 契约测试已入库,处于 RED 状态) | 本轮被纳入执行,14 例失败为预期 RED |
+| YELLOW | 0 | — |
+| GREEN | 5 | 本地 `.tdd/state.json` |
+| DONE | — | 研发侧口径推进(见研发汇报) |
+
+### 1.6 数据源健康度
+
+| 数据源 | 读取键数 | 是否正常 | 备注 |
+|--------|----------|----------|------|
+| 需求侧(SRS 池) | 未启用 | 正常(CFC 未启用 SRS 池) | 需求跟踪以 API_REFERENCE + specs 为准 |
+| 契约常量(contract) | 0 | 正常 | ops_file 无契约常量文件 |
+| 测试用例引用(test_case_map) | 正常 | 正常 | tests/test-cases 台账可读 |
+| 执行结果回填(case_results) | 正常 | 正常 | — |
+
+---
+
+## 二、向研发提出的改进建议
+
+| 序号 | 建议标题 | 问题描述 | 根因分析 | 建议方案 | 优先级 | 状态 |
+|------|----------|----------|----------|----------|--------|------|
+| 1 | `/api/health/plan/**` 强制 JWT(连续 3 轮催办) | 三端点匿名 200 直通业务层(4001/500),违反 API_REFERENCE §4.49 | `LOGIN_REQUIRED_PATHS`(`JwtInterceptor.java:87–127`)漏配该族 | 加入 `/api/health/plan/`,统一「默认拒绝 + 显式放行」 | P0 | 待评估 |
+| 2 | 家庭加入 birthday/gender 捕获实现(S-cfc-35/S-cfc-38 待 YELLOW) | `join-form.vue` 仅渲染真实姓名/昵称,缺出生日期/性别字段与校验;14 例 RED 契约持续失败 | 实现未落地(RED→YELLOW 未完成) | 按契约补全 join-form 出生日期/性别必填、prefill、提交拦截、picker 映射,及审批卡片三项信息展示 | P1 | 待评估 |
+| 3 | langgraph test_memory 用例更新 | `MemoryManager()` 无参调用 vs 实现要求 `embeddings`,3 例 TypeError | store.py 签名变更未同步测试 | 测试侧注入 fake embeddings 更新 3 例;研发确认签名意图 | P1 | 待评估 |
+| 4 | 251 节点恢复 langgraph 9000 | 251:9000/4090 closed,AI 服务维度盲区 | 服务未启动/未部署 | 运维恢复 9000;测试侧更新用例后复验 | P1 | 待评估 |
+| 5 | B-53 13 测试文件收口 | 后端 13 测试文件未提交,覆盖率无法到 96.83% | PR 未合入 | 研发 `git add/commit/push` | P1 | 待评估 |
+| 6 | 自动化环境注入 Maven/mvnw | 后端每轮无法复测 | 无 mvn | 注入 Maven 或提交 wrapper | P1 | 待评估 |
+| 7 | 189/204 opencode agent 执行链路 | 建会话成功但 assistant 零产出(B-56 复现) | opencode 平台 agent run 链路缺陷 | 运维/平台修复;或 `opencode run` 直执行 | P2 | 待评估 |
+
+---
+
+## 三、本轮阻塞与风险
+
+| 阻塞项 | 影响范围 | 阻塞类型 | 处置进展 | 需要协调 |
+|--------|----------|----------|----------|----------|
+| P0 健康方案端点未强制 JWT | 安全契约(AI 配额/家庭隐私) | 研发 | 待响应(连续 3 轮) | 研发修复后复测 TC-HP-U01~03 |
+| 家庭加入 birthday/gender 捕获未实现(S-cfc-35/S-cfc-38 RED) | 前端契约覆盖 | 研发 | RED 已入库,待 YELLOW | 研发实现后复测 14 例 |
+| 251 langgraph 不可达 | langgraph 测试盲区 | 测试(环境) | 待响应 | 运维恢复 9000 |
+| B-56 189/204 agent 零产出 | 远程浏览器自动化派发 | 测试(环境) | 待处理(已多次登记) | 运维/平台修复 |
+| B-53 测试文件未提交 | 后端覆盖率口径 | 研发 | 待响应 | 研发收口 PR |
+| 本机 langgraph 兜底损坏(chromadb DLL/LLM 401) | 本机兜底无效 | 测试(环境) | 自处置无效、无需修(正式走 251) | — |
+
+---
+
+## 四、下轮工作计划
+
+| 计划项 | 预计完成时间 | 前置依赖 | 备注 |
+|--------|--------------|----------|------|
+| 复验 P0 HP 三端点(若研发修复) | 下轮 | 研发合入 | TC-HP-U01~03 转 pass 即推进门禁 |
+| 驱动 S-cfc-35/S-cfc-38 至 YELLOW(若研发实现 birthday/gender 捕获) | 下轮 | 研发合入 | 14 例 RED 转绿 |
+| 复验 /admin 5/5、/frontend 6/6、/shop 4/4 稳定性 | 下轮 | 无 | 每轮回归 |
+| 251 恢复后按 pytest 全量复验 langgraph | 待运维 | 251:9000 | 落实「langgraph 派 251」约束 |
+
+---
+
+## 附录
+
+### 附录 A:本轮新增测试用例明细
+
+| 用例 ID | 能力键 | 目标单元 | 用例标题 | 预期失败契约 | 是否已登记 RED | 登记 sha |
+|---------|--------|----------|----------|--------------|----------------|----------|
+| (本轮无新增) | S-cfc-35 / S-cfc-38 | join-form / joinRequestCardInfo | 出生日期/性别必填+prefill+提交拦截+picker 映射 / 审批卡片三项信息 | 14 例当前 RED(功能未实现) | 是(历史入库,本轮纳入执行) | 随历史提交(076cfa879 / c5e065dda) |
+
+### 附录 B:任务分派与会话恢复明细
+
+| 任务号 | 目标会话标签 | 分派时间 | 分派类型 | 当前状态 | 恢复会话标签 | 恢复原因 | 恢复时间 |
+|--------|--------------|----------|----------|----------|--------------|----------|----------|
+| (无) | — | — | — | — | — | — | — |
+
+### 附录 C:新发现问题明细
+
+| 问题 ID | 能力键/任务号 | 问题类型 | 路由去向 | 登记时间 | 处置状态 | 关联 sha |
+|---------|---------------|----------|----------|----------|----------|----------|
+| R79-Δ1 | cfc-frontend Jest 执行范围变更 | 覆盖可见性/契约 | 测试自处置 + 研发实现 | 2026-11-08 03:23 | 待处理 | jest.config.js (mtime 03:15) + join-form.required-info.test.js / joinRequestCardInfo.test.js |
+
+### 附录 D:本轮与 R78 基线对比(变化点)
+
+| 维度 | R78(02:47) | R79(03:23) | 变化判定 |
+|------|--------------|--------------|----------|
+| cfc-frontend Jest | 17 套件 / 319/319 | 19 套件 / 343(328 过 / 14 败 / 1 跳) | **变更**:2 个既有 RED 契约套件进入执行范围(此前 R78 报告未纳入),14 例为预期 RED(功能未实现),无既有用例回归 |
+| cfc-web Jest | 90/90 | 90/90 | 一致 |
+| cfc-langgraph pytest(本地兜底) | 26/17 | 26/17 | 一致(251 不可达,本机兜底非权威) |
+| admin-desktop | 5/5 | 5/5 | 一致 |
+| frontend-mobile | 6/6 | 6/6(重跑确认,首跑因 safe-delete 清理超时误报 EXIT 1) | 一致 |
+| shop-api | 4/4 | 4/4 | 一致 |
+| health-api(TC-HP-U01~03) | 10/3 | 10/3 | 一致(P0 B-61 延续) |
+| cfc-backend JUnit | 基线 95.07% 复用 | 基线 95.07% 复用(无 mvn 未重跑) | 一致 |
+
+> **变化结论**:本轮唯一实质变化为 cfc-frontend 执行范围扩大,使 2 个既有 RED 契约套件(S-cfc-35/S-cfc-38,共 14 例)进入统计——属「测试覆盖可见性提升 + 待实现功能暴露」,非既有功能回归。此前 328 个通过用例包含 R78 全部通过用例 + 净新增通过用例,**无通过用例转红**。
+
+---
+
+## 五、门禁结论
+
+### ⛔ **不通过(有条件)**
+
+**理由**:功能回归层面稳定(admin 5/5、frontend 6/6、shop 4/4、web 90/90、langgraph 本地兜底 26/17 与 R78 一致,无既有用例回归);但:
+1. **P0 安全缺陷(健康方案 3 端点匿名直通)连续 3 轮未修复**(TC-HP-U01/02/03 持续失败);
+2. **S-cfc-35/S-cfc-38 家庭加入 birthday/gender 捕获实现未落地**(14 例 RED 契约持续失败,本轮随执行范围扩大而暴露);
+3. **langgraph 测试资产滞后 + 251 节点不可达**导致 AI 服务维度仍为盲区(本机兜底 17 败);
+4. **后端每轮复测依赖 mvn 注入**(本机无 mvn,复用 R77 95.07% 基线)。
+
+**复评条件(全部满足方转「通过」)**:
+1. P0:`/api/health/plan/**` 加入 `LOGIN_REQUIRED_PATHS`,TC-HP-U01/02/03 转 pass(401);
+2. S-cfc-35/S-cfc-38:join-form 补全 birthday/gender 捕获,14 例 RED 转绿(YELLOW);
+3. langgraph `test_memory.py` 更新 + 251 节点恢复并复验全量 pytest EXIT 0;
+4. B-53 13 测试文件合入,后端全量 ≥96.83%、红例 ≤73;
+5. 自动化环境具备 Maven(或 mvnw),后端每轮可复测;
+6. 依赖漏洞扫描 + 性能压测获得授权后执行并达标。
+
+---
+
+> 约束遵守声明:本闭环仅访问内网 `cfc.iwintrue.com` + 内网节点 189/204/251 探活;未访问公网;未修改/提交/推送任何生产源码(仅测试目录用例与报告文档);未输出任何密钥/口令/令牌;Jest 为 mock API,不据此断言真实服务端行为;未编造,缺材料一律标注待核实。SRS/用户场景自 R78 以来无变更(仅 `cfc-web` 自动版本变更说明提交),无需本轮更新测试用例。

+ 47 - 0
docs/tdd/test/automation-run-2026-11-08-0323.md

@@ -0,0 +1,47 @@
+# 测试闭环报告 · R79(2026-11-08 03:23)
+
+- **执行时间**:2026-11-08 03:23 (GMT+8)
+- **对象 / 分支**:`d:/cfc`(浠艾福 XAF)· `origin/cfclub`
+- **HEAD(本轮起始)**:`021b66473`(R78 闭环汇报)→ 本轮提交见文末
+- **上次自动化轮**:2026-11-08 02:47,HEAD `021b66473`(结论:⛔不通过(有条件))
+- **执行档**:review(内网 `cfc.iwintrue.com` /admin 与 /frontend + 配套 /api 只读探测;禁止公网)
+- **测试负责人**:陆谨(软件测试专家团主理人)
+
+---
+
+## 一、执行范围与命令(本轮实测)
+
+| 项 | 命令 | 结果 |
+|---|---|---|
+| cfc-frontend Jest | `cd cfc-frontend && npx jest --ci` | 19 套件 / 343:328 过 / 14 败 / 1 跳(EXIT 1) |
+| cfc-web Jest | `cd cfc-web && npx jest --ci` | 12 套件 / 90 过(EXIT 0) |
+| cfc-langgraph pytest | `cd cfc-langgraph && .venv/Scripts/python -m pytest tests --ignore=tests/qna` | 43 收集 / 26 过 / 17 败(EXIT 1;251 不可达→本机兜底) |
+| 浏览器 E2E /admin | `cd tests && npx playwright test -c playwright.config.live.js --project=admin-desktop` | 5/5(EXIT 0) |
+| 浏览器 E2E /frontend | `--project=frontend-mobile` | 6/6(EXIT 0;首跑因 safe-delete 清理超时误报,已重跑确认) |
+| 商城排序契约 | `--project=shop-api` | 4/4(EXIT 0) |
+| E2E 健康契约 | `npx playwright test -c playwright.config.health.js --project=health-api` | 13:10 过 / 3 败(TC-HP-U01~03,P0 B-61 延续) |
+| cfc-backend mvn test | `mvn test`(无 mvn / 无 mvnw) | ⚠️ 未实测 → 复用 R77 基线 95.07% |
+
+## 二、测试结果总览(本轮实测)
+
+| 模块 | 用例总数 | 通过 | 失败 | 跳过 | 备注 |
+|---|---|---|---|---|---|
+| 浏览器 E2E /admin | 5 | 5 | 0 | 0 | TC-A-U01~U05 |
+| 浏览器 E2E /frontend | 6 | 6 | 0 | 0 | TC-F-U01~U06 |
+| 商城排序契约 | 4 | 4 | 0 | 0 | TC-S-U01~U04 |
+| E2E health-contract | 13 | 10 | 3 | 0 | 10 既绿;3 HP 鉴权失败(P0 延续) |
+| cfc-frontend Jest | 343 | 328 | 14 | 1 | 14 败 = 2 RED 契约套件(S-cfc-35/S-cfc-38,birthday/gender 捕获未实现) |
+| cfc-web Jest | 90 | 90 | 0 | 0 | 12 套件 |
+| cfc-langgraph pytest(本机兜底) | 43 | 26 | 17 | 0 | 环境问题为主 + test_memory 3 例滞后 |
+| cfc-backend(R77 基线复用) | 2903 | 2784 | 74 | 4 | 95.07%(未重跑,标注基线) |
+| **合计(本机实测)** | **504** | **469** | **34** | **1** | — |
+
+## 三、与 R78 对比(变化点)
+
+- **唯一实质变化**:cfc-frontend Jest 执行范围由 17 套件/319 扩至 19 套件/343。`jest.config.js`(mtime 2026-11-08 03:15)`testMatch` 覆盖 `**/__tests__/**/*.test.js`,使 2 个既有 RED 契约套件(`join-form.required-info`、`joinRequestCardInfo`,提交 076cfa879 / c5e065dda,属 S-cfc-35/S-cfc-38)进入执行统计。生产 `join-form.vue` 仅渲染真实姓名/昵称,缺 birthday/gender 字段 → 14 例为预期 RED(功能未实现),**无既有通过用例转红**。
+- admin/frontend/shop/health/web/langgraph 与 R78 完全一致。
+- 自 R78 以来仅 `cfc-web` 自动版本变更说明提交(f52cff678),无 SRS/用户场景变更 → 无需本轮更新测试用例。
+
+## 四、门禁结论
+
+⛔ **不通过(有条件)**:P0 健康方案鉴权缺口连续 3 轮未修 + 家庭加入 birthday/gender 捕获未实现(14 RED)+ langgraph 251 不可达盲区 + 后端无 mvn 复用基线。复评条件见 report-test 第五节。

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

@@ -69,3 +69,4 @@
 | B-59 | `tests/e2e-live/admin-live.spec.js:158` TC-A-U05 用「网址含 /login 就跳过」把前置失败转成不判定 | 测试(下轮自处置) | **P1 用例哨兵失效(第 77 轮实测新发现)**。本轮 admin-desktop 套件结果为 **14 过 / 1 跳过**(R75/R76 为 5/5 全过),被跳过的正是 `TC-A-U05 后台核心菜单可访问`:该用例自己重新走一遍登录流程(填凭据 → 等身份带出 → 拖滑块 → 点击登录 → `waitForTimeout(5000)`),随后执行 `test.skip(page.url().includes('/login'), '登录未通过(见 TC-A-U04),本用例无法在无会话下判定')`。本轮同一次运行里 `TC-A-U04` 真实登录**通过**并落到 `/admin/dashboard`(菜单 102),但 U05 自身的第二次登录在 5s 等待窗内未完成跳转 → 命中跳过分支。影响:① 跳过不计红,套件看起来「绿」,实际菜单遍历验收缺口;② 与 B-48/B-57 同族——把不确定态转成不判定,哨兵永久失效;③ 5s 固定等待属时序脆弱点(并发跑后端全量时机器负载高,登录链路变慢)。建议修复(任选其一,均 ≤5 行):① 把 `test.skip(...)` 改为 `expect(page.url()).not.toContain('/login')`,让前置失败直接红;② 让 U05 复用 U04 的 `storageState`(`playwright.config` 开启 `storageState` 复用),彻底避免二次登录;③ `waitForTimeout(5000)` 换成 `page.waitForURL(/\/admin\/dashboard/, { timeout: 20000 })`。闭环:admin 套件连续 2 轮 5/5 全过且无 skip | 测试负责人(第 77 轮实测登记) | 2026-11-08 02:16 | 待处理(下轮自处置) |
 | B-60 | `ActivityControllerTest` 单类 16 例耗时 412.4s,占后端全量时长 16% | 研发 | **P2 测试隔离/时效缺陷(第 77 轮实测新发现)**。本轮后端全量 `Total time: 48:18 min`,surefire XML 累计 **2568s(42.8 min)**,其中 `com.etotem.cfc.controller.ActivityControllerTest` **412.4s / 16 例**(均值 25.8s/例)、`GuideModuleIntegrationTest` 236.5s / 4 例、`PlannerBindInviteFlowTest` 169.9s / 9 例、`AIChatControllerTest` 125.4s / 17 例、`ArticleCategoryControllerTest` 85.5s / 3 例。对照组:同为 controller 包的多数类在 0.0x~1s 量级。推断:测试内存在真实外部调用(微信/AI 网关/HTTP)或反复重建 Spring 上下文与数据库迁移(`DatabaseInitializer` 每个上下文重跑一次迁移)。影响:全量反馈周期被 5 个类拉到 40 min 以上,属 CI 门禁落地的直接障碍;也让每轮巡检的时间成本翻倍。建议:① 用 `@MockBean`/WireMock 截断真实网络;② 慢类合并上下文(`@DirtiesContext` 只在必要时用);③ 为单类设 120s 警戒阈值,超阈即视为缺陷。闭环:全量 `mvn test` ≤25 min 且无单类 >120s | 测试负责人(第 77 轮实测登记) | 2026-11-08 02:16 | 待处理 |
 | B-61 | `JwtInterceptor.LOGIN_REQUIRED_PATHS` 缺 `/api/health/plan/**`,健康方案 3 端点匿名 200 直通业务层 | 研发 | **P0 安全/契约缺口(第 78 轮实测,连续 2 轮复现)**。`POST /api/health/plan/{adjust,attribution,generate}` 未携带 Authorization 均返回 **HTTP 200**(attribution/generate 业务码 4001 付费墙、adjust 500 NPE),未按 API_REFERENCE §4.49.1/§4.49.2(标注「登录用户 JWT」)拦截为 401/403。对照 `POST /api/huawei-health/auth-url` 无鉴权正确返回 401。根因:`JwtInterceptor.LOGIN_REQUIRED_PATHS`(`JwtInterceptor.java:87–127`)为 opt-in 清单,已含 `/api/huawei-health/`、`/api/xiaomi-health/`,但健康方案族 `HealthPlanController.java:33/:63/:100` 三个端点(adjust/attribution/generate)**既不在 LOGIN_REQUIRED_PATHS 也不在 PUBLIC_PATHS** → 匿名请求被放行到 controller,与 SEC-20261031-01 注释(:96–108)明确反对的「匿名 userId=-1 放行走业务 500 而非安全 401」口径漂移属同族遗漏。影响:匿名用户可触发健康方案归因/生成/调整业务链路(消耗 AI 配额、可能越权读取/生成家庭私有健康方案)。测试证据:`tests/e2e-live/health-contract.spec.js` TC-HP-U01/02/03(上轮新增,本轮复测 3 例仍失败)。修复建议:`LOGIN_REQUIRED_PATHS` 增加 `"/api/health/plan/"`(与健康报告/华为/小米同族),统一「默认拒绝 + 显式放行」。闭环:TC-HP-U01/02/03 由失败转 pass(返回 401)+ 后端补带/不带 token 双向 MockMvc 用例 | 测试负责人(第 78 轮实测登记) | 2026-11-08 02:47 | 待处理(P0,连续 2 轮) |
+| B-62 | cfc-frontend 2 个 RED 契约套件进入执行范围,14 例待实现(S-cfc-35/S-cfc-38 birthday/gender 捕获) | 研发 | **P1 契约待实现(第 79 轮实测,2026-11-08 03:23)**。本轮 jest 执行范围由 17 套件/319 扩至 19 套件/343(`jest.config.js` mtime 03:15,`testMatch: ['**/__tests__/**/*.test.js', ...]`),使 2 个既有 RED 契约套件纳入统计:`__tests__/family-join/join-form.required-info.test.js`(12 败)+ `__tests__/pages/family-members.joinRequestCardInfo.test.js`(2 败)。两文件已在 R78 树内(提交 076cfa879 / c5e065dda,属 S-cfc-35/S-cfc-38 RED 契约),此前 R78 报告未纳入。**性质 = 预期 RED(功能未实现),非既有用例回归**:生产 `cfc-frontend/pages/invite/join-form.vue` 实际仅渲染「真实姓名/昵称」,缺出生日期/性别字段与校验,故断言 birthday/gender 必填、prefill、提交拦截、picker 映射、审批卡片三项信息均失败。**无通过用例转红**(328 通过含 R78 全部通过用例 + 净新增通过用例)。通知研发:家庭加入 birthday/gender 捕获实现(S-cfc-35/S-cfc-38 待 YELLOW)落地后复测 14 例转绿;此前 R78「frontend 全绿」口径未覆盖该 2 套件,本轮为覆盖可见性修正。闭环:研发实现 join-form birthday/gender 捕获 → 14 例 RED 转绿 + 状态机 S-cfc-35/S-cfc-38 置 YELLOW | 测试负责人(第 79 轮实测登记) | 2026-11-08 03:23 | 待处理(P1,预期 RED,待实现) |