test: extend failure-path recovery coverage

This commit is contained in:
nav
2026-04-09 01:32:49 +00:00
parent 0a7f895315
commit e1835ba489
4 changed files with 15 additions and 9 deletions

View File

@@ -1093,7 +1093,7 @@
### YNX-1105 编写失败路径测试矩阵
**状态**
- [x] 部分关键路径已完成,仍有少量尾项2026-04-09
- [x] 持续补齐中,关键路径已覆盖并新增恢复场景2026-04-09
**目标**
- 系统性覆盖 pairing/auth 失败路径
@@ -1144,11 +1144,17 @@
- CF-06未认证 rule message 会关闭连接
- HF-03认证前心跳会返回 `AUTH_FAILED`
- HF-04无会话心跳会返回 `AUTH_FAILED`
- 已新增 `Yonexus.Server/tests/state-recovery.test.ts`
- SR-01 / PF-09server restart with pending pairing验证 pending pairing 与 pairing code 在重启后保留hello 重新进入 `waiting_pair_confirm`
- SR-05损坏的 server store 会抛出 `YonexusServerStoreCorruptionError`
- 已扩展 `Yonexus.Client/tests/state-and-rules.test.ts`
- SR-06损坏的 client state 会抛出 `YonexusClientStateCorruptionError`
- 已同步更新 `tests/failure-path/MATRIX.md`,标记 PF-09、SR-01、SR-05、SR-06 为已覆盖
**待完成**
- AF-04当前实现未单独暴露 `invalid_secret` 分支,需先决定是否保留该错误码语义
- RP 其余触发场景
- CF / HF / SR 其余边界场景测试(除 CF-06、HF-03、HF-04
- CF / HF / SR 其余边界场景测试(例如 duplicate connection、version mismatch、server/client restart with active session 等
---

View File

@@ -23,7 +23,7 @@ This document defines the systematic test coverage for pairing and authenticatio
| PF-06 | Malformed pair_confirm payload | Missing required fields | Protocol error, no state change | ✅ |
| PF-07 | Double pairing attempt | Client calls pair_confirm twice | Second attempt rejected if already paired | ✅ |
| PF-08 | Pairing during active session | Paired client tries to pair again | Reject, maintain existing trust | ⬜ |
| PF-09 | Server restart during pairing | Server restarts before confirm | Pairing state preserved, code still valid | |
| PF-09 | Server restart during pairing | Server restarts before confirm | Pairing state preserved, code still valid | |
| PF-10 | Client restart during pairing | Client restarts before submit | Client must restart pairing flow | ⬜ |
---
@@ -86,12 +86,12 @@ This document defines the systematic test coverage for pairing and authenticatio
| ID | Scenario | Condition | Expected Recovery | Status |
|----|----------|-----------|-------------------|--------|
| SR-01 | Server restart with pending pairing | Pairing in progress | Preserve pairing state, code valid | |
| SR-01 | Server restart with pending pairing | Pairing in progress | Preserve pairing state, code valid | |
| SR-02 | Server restart with active sessions | Online clients | All marked offline, reconnect required | ⬜ |
| SR-03 | Client restart with credentials | Has secret + keys | Resume with auth, no re-pairing | ⬜ |
| SR-04 | Client restart without credentials | First run | Full pairing flow required | ⬜ |
| SR-05 | Corrupted server store | File unreadable | Clear state, start fresh | |
| SR-06 | Corrupted client state | File unreadable | Reset to initial state | |
| SR-05 | Corrupted server store | File unreadable | Surface corruption error clearly for operator handling | |
| SR-06 | Corrupted client state | File unreadable | Surface corruption error clearly for operator handling | |
---
@@ -133,7 +133,7 @@ npm test -- failure-paths
### Current Notes
- AF-04 (`invalid_secret`) 仍未单独覆盖:现有实现把“错误 secret 导致的验签失败”统一落到 `invalid_signature`,是否拆分错误码仍待确认。
- 本轮已补齐 AF-01/02/03/05/06/09/10/11、RP-01、HF-01/02。
- 本轮已补齐 AF-01/02/03/05/06/09/10/11、RP-01、HF-01/02、PF-09、SR-01、SR-05、SR-06
### Adding New Test Cases