Files
ai-workflow-skill/docs/tests/inbox/renew

Inbox renew Test Plan

Scope

This document covers lease renewal behavior via inbox renew.

Shared conventions live in ../_shared/README.md.

case: renew-extends-active-lease

用例意义

验证租约拥有者可以对活跃 lease 执行续租,并生成续租事件消息。

前置条件

  • worker-c 已成功 claim 线程 THREAD_ID

输入

inbox --db TMPDIR/coord.db --json renew --agent worker-c --thread THREAD_ID --lease-seconds 600

预期输出

  • 命令退出码为 0
  • thread.status 保持原状态
  • message.kind == "event"
  • message.summary == "lease renewed"
  • message.payload_json.lease_seconds == 600

断言结论

  • renew 是在原线程上追加续租事件,而不是重新 claim

case: renew-rejects-non-owner

用例意义

验证非租约拥有者不能续租别人的活跃 lease。

前置条件

  • worker-c 已成功 claim 线程 THREAD_ID

输入

inbox --db TMPDIR/coord.db --json renew --agent worker-x --thread THREAD_ID --lease-seconds 600

预期输出

  • 退出码为 20
  • JSON 错误码为 lease_conflict

断言结论

  • renewclaim 一样受 lease owner 约束

case: renew-rejects-without-active-lease

用例意义

验证线程没有活跃租约时,renew 会明确失败。

前置条件

  • 已存在线程 THREAD_ID
  • 该线程当前没有活跃 lease

输入

inbox --db TMPDIR/coord.db --json renew --agent worker-c --thread THREAD_ID --lease-seconds 600

预期输出

  • 退出码为 30
  • JSON 错误码为 invalid_state

断言结论

  • renew 依赖已有活跃租约
  • 没有 lease 属于状态错误,不是 not-found