2.5 KiB
2.5 KiB
Inbox reply Test Plan
Scope
This document covers reply behavior within an existing thread via inbox reply.
Shared conventions live in ../_shared/README.md.
case: reply-adds-answer-message
用例意义
验证 reply 默认会向现有线程追加一条 answer 消息,并保持线程状态不变。
前置条件
- 已存在一个非终态线程
THREAD_ID
输入
inbox --db TMPDIR/coord.db --json reply --from leader --to worker-a --thread THREAD_ID --summary "Retry read timeouts" --body "Yes, include read timeouts in the retry policy."
预期输出
- 命令退出码为
0 message.kind == "answer"thread.thread_id == THREAD_ID- 线程状态保持原值
断言结论
reply是线程内追加消息,而不是状态转换命令
case: reply-supports-control-kind
用例意义
验证 reply --kind control 可以发送控制类消息,而不局限于默认 answer。
前置条件
- 已存在一个非终态线程
THREAD_ID
输入
inbox --db TMPDIR/coord.db --json reply --from leader --to worker-a --thread THREAD_ID --kind control --summary "Pause rollout" --body "Pause rollout until QA confirms the fix."
预期输出
- 命令退出码为
0 message.kind == "control"
断言结论
reply的消息种类可由调用方显式指定
case: reply-attaches-artifact
用例意义
验证 reply 支持追加带附件的答复消息。
前置条件
- 已存在一个非终态线程
THREAD_ID TMPDIR/decision.md已存在
输入
inbox --db TMPDIR/coord.db --json reply --from leader --to worker-a --thread THREAD_ID --summary "Retry read timeouts" --artifact TMPDIR/decision.md --artifact-kind brief --artifact-metadata-json '{"label":"decision"}'
预期输出
- 命令退出码为
0 message.artifacts长度为1- artifact 路径、kind、metadata 都可读
断言结论
reply与send/update/done/fail共享附件写入契约
case: reply-rejects-invalid-payload-json
用例意义
验证 reply 对非法 --payload-json 输入返回稳定错误契约。
前置条件
- 已存在一个非终态线程
THREAD_ID
输入
inbox --db TMPDIR/coord.db --json reply --from leader --to worker-a --thread THREAD_ID --summary "Retry read timeouts" --payload-json not-json
预期输出
- 退出码为
30 - JSON 错误码为
invalid_input
断言结论
reply的 payload 与其他消息写入命令一样需要通过 JSON 校验