docs(test): track U6 API evidence as txt (logs gitignored)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
weichen
2026-09-17 13:49:12 +00:00
co-authored by Cursor
parent 7b09da1f99
commit 472f845a88
4 changed files with 78 additions and 2 deletions
@@ -55,7 +55,7 @@ U6 修复可见性与真实 API 接入,使编制人兼任完整闭环第一次
### 5.2 HTTP 真实闭环(author_only)
**输入**:admin Bearer 调用四接口(证据:`assets/2026-09-17-document-author-only-u6/api-lifecycle-author-only.log`)
**输入**:admin Bearer 调用四接口(证据:`assets/2026-09-17-document-author-only-u6/api-lifecycle-author-only.txt`)
**实际输出(摘要)**:
@@ -67,7 +67,7 @@ U6 修复可见性与真实 API 接入,使编制人兼任完整闭环第一次
### 5.3 HTTP 负例
**输入**:`lizhuguan` 对同一文档 review/approve(`api-negative.log`)
**输入**:`lizhuguan` 对同一文档 review/approve(`api-negative.txt`)
**实际输出**:
@@ -0,0 +1,20 @@
=== claim ===
{"id":293,"doc_id":"doc_proj6425_rd_design_input_spec","project_id":6425,"task_key":"rd_design_input_spec","title":"设计输入规格书","stage":"RD03_design_input","version":1,"current_state":"reviewing","is_locked":true,"is_template_only":false,"content_sha256":"3b763a3488dbd4fab8d7793f90b46f3373457f3745f3906b3c33e2bd39af39dc","work_dir":"/app/data/workspaces/bizdev/rd_design_input_spec_1789635960900711737","author_id":9,"author_name":"系统管理员","reviewer_id":9,"reviewer_name":"系统管理员","approver_id":9,"approver_name":"系统管理员","duty_locked":true,"duty_policy":"author_only","author_claimed":true,"author_claimed_at":"2026-09-17T13:34:38.964259543Z","author_last_viewed_at":"2026-09-17T13:35:23.866926066Z","author_last_edited_at":null,"reviewer_claimed":false,"reviewer_claimed_at":null,"approver_claimed":false,"approver_claimed_at":null,"last_rejected_reason":"","last_rejected_by_role":"","last_rejected_by_name":"","last_rejected_at":null,"approved_at":null,"config":{"reject_rollback_to":"drafting","allow_approver_to_reviewer":true,"require_author_confirm_on_reject":true},"created_at":"2026-09-17T09:06:00.895726Z","updated_at":"2026-09-17T13:35:23.866926066Z"}
HTTP 200
=== submit ===
{"code":"VALIDATION","message":"请求参数无效","request_id":"req_a48e5a5d351af446","error":"submit review failed: docgov: invalid document lifecycle state transition: 无法从【reviewing】阶段提交审核,必须为【drafting】"}
HTTP 400
=== review_approve ===
{"id":293,"doc_id":"doc_proj6425_rd_design_input_spec","project_id":6425,"task_key":"rd_design_input_spec","title":"设计输入规格书","stage":"RD03_design_input","version":1,"current_state":"approving","is_locked":true,"is_template_only":false,"content_sha256":"3b763a3488dbd4fab8d7793f90b46f3373457f3745f3906b3c33e2bd39af39dc","work_dir":"/app/data/workspaces/bizdev/rd_design_input_spec_1789635960900711737","author_id":9,"author_name":"系统管理员","reviewer_id":9,"reviewer_name":"系统管理员","approver_id":9,"approver_name":"系统管理员","duty_locked":true,"duty_policy":"author_only","author_claimed":true,"author_claimed_at":"2026-09-17T13:34:38.964259543Z","author_last_viewed_at":"2026-09-17T13:35:23.866926066Z","author_last_edited_at":null,"reviewer_claimed":false,"reviewer_claimed_at":null,"approver_claimed":false,"approver_claimed_at":null,"last_rejected_reason":"","last_rejected_by_role":"","last_rejected_by_name":"","last_rejected_at":null,"approved_at":null,"config":{"reject_rollback_to":"drafting","allow_approver_to_reviewer":true,"require_author_confirm_on_reject":true},"created_at":"2026-09-17T09:06:00.895726Z","updated_at":"2026-09-17T13:35:23.888196734Z"}
HTTP 200
=== approver_approve ===
{"id":293,"doc_id":"doc_proj6425_rd_design_input_spec","project_id":6425,"task_key":"rd_design_input_spec","title":"设计输入规格书","stage":"RD03_design_input","version":1,"current_state":"approved","is_locked":true,"is_template_only":false,"content_sha256":"3b763a3488dbd4fab8d7793f90b46f3373457f3745f3906b3c33e2bd39af39dc","work_dir":"/app/data/workspaces/bizdev/rd_design_input_spec_1789635960900711737","author_id":9,"author_name":"系统管理员","reviewer_id":9,"reviewer_name":"系统管理员","approver_id":9,"approver_name":"系统管理员","duty_locked":true,"duty_policy":"author_only","author_claimed":true,"author_claimed_at":"2026-09-17T13:34:38.964259543Z","author_last_viewed_at":"2026-09-17T13:35:23.866926066Z","author_last_edited_at":null,"reviewer_claimed":false,"reviewer_claimed_at":null,"approver_claimed":false,"approver_claimed_at":null,"last_rejected_reason":"","last_rejected_by_role":"","last_rejected_by_name":"","last_rejected_at":null,"approved_at":"2026-09-17T13:35:23.898240156Z","config":{"reject_rollback_to":"drafting","allow_approver_to_reviewer":true,"require_author_confirm_on_reject":true},"created_at":"2026-09-17T09:06:00.895726Z","updated_at":"2026-09-17T13:35:23.898240156Z"}
HTTP 200
@@ -0,0 +1,7 @@
=== negative review by lizhuguan ===
{"error":"DOC_DUTY_FORBIDDEN","message":"当前用户不是该文档的对应职责人"}
HTTP 403
=== negative approve by lizhuguan ===
{"error":"DOC_DUTY_FORBIDDEN","message":"当前用户不是该文档的对应职责人"}
HTTP 403
@@ -0,0 +1,49 @@
PASS login_via_api_and_inject_session
PASS open_project_and_doc
PASS assert_author_only_badge_or_actions
PASS click_claim_if_present
PASS click_submit_if_present
PASS click_review_pass_if_present
PASS click_approve_if_present
DONE [
{
"step": "login_via_api_and_inject_session",
"ok": true
},
{
"step": "open_project_and_doc",
"ok": true
},
{
"step": "visibility_probe",
"hasBadge": true,
"hasClaim": true,
"hasSubmit": true,
"hasReview": false,
"hasApprove": true
},
{
"step": "assert_author_only_badge_or_actions",
"ok": true
},
{
"step": "click_claim_if_present",
"ok": true
},
{
"step": "click_submit_if_present",
"ok": true
},
{
"step": "click_review_pass_if_present",
"ok": true
},
{
"finalHasApproved": false,
"finalHasBadge": true
},
{
"step": "click_approve_if_present",
"ok": true
}
]