docs: split inbox test plans into case files
This commit is contained in:
@@ -1,87 +1,9 @@
|
||||
# Inbox `renew` Test Plan
|
||||
# Inbox `renew` Test Plan Index
|
||||
|
||||
## Scope
|
||||
## Case Files
|
||||
|
||||
This document covers lease renewal behavior via `inbox renew`.
|
||||
|
||||
Shared conventions live in [../_shared/README.md](../_shared/README.md).
|
||||
|
||||
## case: renew-extends-active-lease
|
||||
|
||||
### 用例意义
|
||||
|
||||
验证租约拥有者可以对活跃 lease 执行续租,并生成续租事件消息。
|
||||
|
||||
### 前置条件
|
||||
|
||||
- `worker-c` 已成功 `claim` 线程 `THREAD_ID`
|
||||
|
||||
### 输入
|
||||
|
||||
```bash
|
||||
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`
|
||||
|
||||
### 输入
|
||||
|
||||
```bash
|
||||
inbox --db TMPDIR/coord.db --json renew --agent worker-x --thread THREAD_ID --lease-seconds 600
|
||||
```
|
||||
|
||||
### 预期输出
|
||||
|
||||
- 退出码为 `20`
|
||||
- JSON 错误码为 `lease_conflict`
|
||||
|
||||
### 断言结论
|
||||
|
||||
- `renew` 与 `claim` 一样受 lease owner 约束
|
||||
|
||||
## case: renew-rejects-without-active-lease
|
||||
|
||||
### 用例意义
|
||||
|
||||
验证线程没有活跃租约时,`renew` 会明确失败。
|
||||
|
||||
### 前置条件
|
||||
|
||||
- 已存在线程 `THREAD_ID`
|
||||
- 该线程当前没有活跃 lease
|
||||
|
||||
### 输入
|
||||
|
||||
```bash
|
||||
inbox --db TMPDIR/coord.db --json renew --agent worker-c --thread THREAD_ID --lease-seconds 600
|
||||
```
|
||||
|
||||
### 预期输出
|
||||
|
||||
- 退出码为 `30`
|
||||
- JSON 错误码为 `invalid_state`
|
||||
|
||||
### 断言结论
|
||||
|
||||
- `renew` 依赖已有活跃租约
|
||||
- 没有 lease 属于状态错误,不是 not-found
|
||||
| Case Slug | File | Coverage Note |
|
||||
| --- | --- | --- |
|
||||
| `renew-extends-active-lease` | [renew-extends-active-lease.md](./renew-extends-active-lease.md) | owner renews an active lease and gets a renewal event |
|
||||
| `renew-rejects-non-owner` | [renew-rejects-non-owner.md](./renew-rejects-non-owner.md) | non-owner renew attempt returns lease_conflict |
|
||||
| `renew-rejects-without-active-lease` | [renew-rejects-without-active-lease.md](./renew-rejects-without-active-lease.md) | missing active lease returns invalid_state |
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Case: `renew-extends-active-lease`
|
||||
|
||||
## 用例意义
|
||||
|
||||
验证租约拥有者可以对活跃 lease 执行续租,并生成续租事件消息。
|
||||
|
||||
## 前置条件
|
||||
|
||||
- `worker-c` 已成功 `claim` 线程 `THREAD_ID`
|
||||
|
||||
## 输入
|
||||
|
||||
```bash
|
||||
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`
|
||||
- `message.payload_json.lease_token` 存在
|
||||
|
||||
## 断言结论
|
||||
|
||||
- `renew` 是在原线程上追加续租事件,而不是重新 claim
|
||||
|
||||
## 补充约束
|
||||
|
||||
- `renew` 需要 agent 身份;可以通过命令级 `--agent` 提供,也可以回退到根级 `--agent`
|
||||
- `--lease-seconds` 传入 `0` 或负数时,CLI 会按 `900` 秒默认值处理
|
||||
@@ -0,0 +1,24 @@
|
||||
# Case: `renew-rejects-non-owner`
|
||||
|
||||
## 用例意义
|
||||
|
||||
验证非租约拥有者不能续租别人的活跃 lease。
|
||||
|
||||
## 前置条件
|
||||
|
||||
- `worker-c` 已成功 `claim` 线程 `THREAD_ID`
|
||||
|
||||
## 输入
|
||||
|
||||
```bash
|
||||
inbox --db TMPDIR/coord.db --json renew --agent worker-x --thread THREAD_ID --lease-seconds 600
|
||||
```
|
||||
|
||||
## 预期输出
|
||||
|
||||
- 退出码为 `20`
|
||||
- JSON 错误码为 `lease_conflict`
|
||||
|
||||
## 断言结论
|
||||
|
||||
- `renew` 与 `claim` 一样受 lease owner 约束
|
||||
@@ -0,0 +1,26 @@
|
||||
# Case: `renew-rejects-without-active-lease`
|
||||
|
||||
## 用例意义
|
||||
|
||||
验证线程没有活跃租约时,`renew` 会明确失败。
|
||||
|
||||
## 前置条件
|
||||
|
||||
- 已存在线程 `THREAD_ID`
|
||||
- 该线程当前没有活跃 lease
|
||||
|
||||
## 输入
|
||||
|
||||
```bash
|
||||
inbox --db TMPDIR/coord.db --json renew --agent worker-c --thread THREAD_ID --lease-seconds 600
|
||||
```
|
||||
|
||||
## 预期输出
|
||||
|
||||
- 退出码为 `30`
|
||||
- JSON 错误码为 `invalid_state`
|
||||
|
||||
## 断言结论
|
||||
|
||||
- `renew` 依赖已有活跃租约
|
||||
- 没有 lease 属于状态错误,不是 not-found
|
||||
Reference in New Issue
Block a user