claude-code/docs/test-plans/phase-18-weak-fixes.md
2026-04-02 15:06:51 +08:00

3.7 KiB
Raw Blame History

Phase 18 — WEAK 修复 + ACCEPTABLE 加固

创建日期2026-04-02 预计:+30 tests / 4 files (修改现有) 目标:修复所有 WEAK 评分测试文件,消除系统性问题


18.1 src/utils/__tests__/format.test.ts — 断言精确化(+5 tests

问题: formatNumber/formatTokens/formatRelativeTime 使用 toContain 修复: 改为 toBe 精确匹配

- expect(formatNumber(1500000)).toContain("1.5")
+ expect(formatNumber(1500000)).toBe("1.5m")

新增测试:

测试用例 验证点
formatNumber — 0 "0"
formatNumber — billions "1.5b"
formatTokens — thousands 精确匹配
formatRelativeTime — hours ago 精确匹配
formatRelativeTime — days ago 精确匹配

18.2 src/utils/__tests__/envValidation.test.ts — Bug 确认(+3 tests

问题: value=1, lowerBound=100 返回 status: "valid" — 函数名暗示有下界检查 计划: 先读取源码确认 defaultValuelowerBound 的语义关系,然后:

  • 如果是源码 bug → 在测试中注释标记,不修改源码
  • 如果是设计意图 → 更新测试描述明确语义

新增测试:

测试用例 验证点
parseFloat truncation "50.9" → 50
whitespace handling " 500 " → 500
very large number overflow 处理

18.3 src/utils/permissions/__tests__/PermissionMode.test.ts — false 路径(+8 tests

问题: isExternalPermissionMode false 路径从未执行 修复: 覆盖所有 5 种 mode 的 true/false 期望

测试用例 验证点
isExternalPermissionMode — plan false
isExternalPermissionMode — auto false
isExternalPermissionMode — default false
permissionModeFromString — all modes 5 种 mode 全覆盖
permissionModeFromString — invalid 默认值
permissionModeFromString — case insensitive 大小写
isPermissionMode — valid strings true
isPermissionMode — invalid strings false

18.4 src/tools/shared/__tests__/gitOperationTracking.test.ts — mock analytics+4 tests

问题: 未 mock analytics 依赖,测试产生副作用 修复: 添加 mock.module("src/services/analytics/...", ...)

新增测试:

测试用例 验证点
parseGitCommitId — all GH PR actions 补齐 6 个 action
detectGitOperation — no analytics call mock 验证
detectGitCommitId — various formats SHA/短 SHA/HEAD
git operation tracking — edge cases 空输入、畸形输入

排除清单

以下模块 不纳入测试,原因合理:

模块 行数 排除原因
query.ts 1732 核心循环40+ 依赖,需完整集成环境
QueryEngine.ts 1320 编排器30+ 依赖
utils/hooks.ts 5121 51 exportsspawn 子进程
utils/config.ts 1817 文件系统 + lockfile + 全局状态
utils/auth.ts 2002 多 provider 认证,平台特定
utils/fileHistory.ts 1115 重 I/O 文件备份
utils/sessionRestore.ts 551 恢复状态涉及多个子系统
utils/ripgrep.ts 679 spawn 子进程
utils/yaml.ts 15 两行 wrapper
utils/lockfile.ts 43 trivial wrapper
screens/ / components/ Ink 渲染测试环境
bridge/ / remote/ / ssh/ 网络层
daemon/ / server/ 进程管理

预期成果

指标 Phase 16 后 Phase 17 后 Phase 18 后
测试数 ~1417 ~1567 ~1597
文件数 76 87 91
WEAK 文件 6 4 0