TODO-IMPROVEMENTS.md 中 T008 原文范围是"为 config_loader / script_runner / webhook 补单元测试"。
TODO-IMPROVEMENTS.md
但经核查,这三个文件已有 50+ 测试覆盖(config 默认值、TOML 解析、按 trigger 注册、parse_output 各类 HookResult、WebhookResponse 序列化等)。真正的缺口在 crates/atomcode-core/src/hook/engine.rs 的 trigger 方法——这些公开方法此前没有单测。
crates/atomcode-core/src/hook/engine.rs
注:issue 范围已重新定位(见下方"范围变更"),避免外部贡献者做重复劳动。
trigger_post_turn
PostTurnHook
collect_system_prompt_extensions
SystemPromptHook
trigger_on_turn_start
OnTurnStartHook
trigger_on_turn_complete
OnTurnCompleteHook
trigger_on_model_response
OnModelResponseHook
trigger_on_error
OnErrorHook
trigger_on_tool_call_start
OnToolCallStartHook
stats()
engine.rs 测试模块已有现成范式可抄:
engine.rs
empty_engine_allows
shell_command_hook_returning_allow_json
ShellCommandHook::from_hook_config
session_start_runs_matching_hooks
SessionContext
对 ShellCommandHook 未实现的 trait,在测试模块内定义轻量 mock(参考本 PR 9da5cc19 的 SpyHook / PostTurnSpy / PromptExtender)。
ShellCommandHook
9da5cc19
SpyHook
PostTurnSpy
PromptExtender
原 T008 列的 3 个文件已充分覆盖,本 issue 的实际范围是:
为 engine.rs 中未覆盖的 trigger 方法补单元测试
请勿为 config_loader / script_runner / webhook 重复写测试。
help wanted, testing, good first issue
help wanted
testing
good first issue
背景
TODO-IMPROVEMENTS.md中 T008 原文范围是"为 config_loader / script_runner / webhook 补单元测试"。但经核查,这三个文件已有 50+ 测试覆盖(config 默认值、TOML 解析、按 trigger 注册、parse_output 各类 HookResult、WebhookResponse 序列化等)。真正的缺口在
crates/atomcode-core/src/hook/engine.rs的 trigger 方法——这些公开方法此前没有单测。待覆盖的 trigger 方法
trigger_post_turnPostTurnHookcollect_system_prompt_extensionsSystemPromptHooktrigger_on_turn_startOnTurnStartHooktrigger_on_turn_completeOnTurnCompleteHooktrigger_on_model_responseOnModelResponseHooktrigger_on_errorOnErrorHooktrigger_on_tool_call_startOnToolCallStartHookstats()参考模式
engine.rs测试模块已有现成范式可抄:empty_engine_allows— 空 engine 行为shell_command_hook_returning_allow_json— 用ShellCommandHook::from_hook_config注册并触发session_start_runs_matching_hooks— 构造SessionContext并触发对
ShellCommandHook未实现的 trait,在测试模块内定义轻量 mock(参考本 PR9da5cc19的SpyHook/PostTurnSpy/PromptExtender)。范围变更(重要)
原 T008 列的 3 个文件已充分覆盖,本 issue 的实际范围是:
请勿为 config_loader / script_runner / webhook 重复写测试。
涉及文件
crates/atomcode-core/src/hook/engine.rs(测试模块)标签
help wanted,testing,good first issue价值