claude-code-best
43af260322
test: 添加 json/truncate/path/tokens 模块测试
- json.test.ts: 27 tests (safeParseJSON, safeParseJSONC, parseJSONL, addItemToJSONCArray)
- truncate.test.ts: 24 tests (truncateToWidth, truncateStartToWidth, truncatePathMiddle, truncate, wrapText)
- path.test.ts: 15 tests (containsPathTraversal, normalizePathForConfigKey)
- tokens.test.ts: 22 tests (getTokenCountFromUsage, getTokenUsage, tokenCountFromLastAPIResponse, etc.)
使用 mock.module() 切断 log.ts/tokenEstimation.ts/slowOperations.ts 重依赖链
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 23:56:37 +08:00
..
2026-04-01 23:56:37 +08:00
2026-03-31 20:40:16 +08:00
2026-03-31 20:40:16 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 22:21:35 +08:00
2026-04-01 22:20:25 +08:00
2026-03-31 20:40:16 +08:00
2026-04-01 22:18:00 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 20:40:16 +08:00
2026-03-31 20:40:16 +08:00
2026-04-01 22:39:21 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 20:40:16 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 20:40:16 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 22:21:35 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 17:11:09 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 22:21:35 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:07:42 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 22:21:35 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 22:21:35 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 21:46:46 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 22:21:35 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:03:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 22:21:35 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:32:58 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-04-01 01:00:10 +08:00
2026-04-01 01:00:10 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 23:43:39 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00
2026-03-31 19:22:47 +08:00