Files
Agent-System/.doc/test-reports/2026-09-16-frontend-gate-b4-test-report.md
weichenandCursor 1f35593dcd docs(test): archive B2–B4 release-gate evidence and check gap boxes
PI three-workflow E2E, chat refresh+restart, and frontend conflict/
termination-preview reports; mark corresponding gap-matrix gates done.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 04:11:54 +00:00

2.4 KiB
Raw Permalink Blame History

前端版本冲突刷新与终止 preview(发布门禁 B4)测试报告

一、 测试背景 (Background)

发布门禁要求人工抽检:版本冲突后刷新再确认、终止 preview 可用。抽检中发现 HTTP 信封将领域码嵌套进 error JSON 字符串,前端若只读信封 VERSION_CONFLICT 会错过 PLAN_FROZEN / ERR_CONCURRENT_SWITCH 恢复路径。

二、 测试目标 (Test Objectives)

  • 过期 expected_selection_version → 409 + 业务码 ERR_CONCURRENT_SWITCH → 恢复 retry_after_switch
  • 激活后改规划 → 409 + PLAN_FROZEN → refresh_and_freeze
  • GET …/termination-preview 返回 can_terminate 等字段
  • 单元:信封嵌套解包;设置页冲突后 reload settings

三、 测试方案与环境 (Test Plan & Environment)

  • live API:dev :8080,项目 6363
  • 单测:npx tsx --test src/api/projectSettingsError.test.ts
  • 代码:web/src/api/projectSettingsError.ts、ProjectSettingsModal.tsx

四、 预期结果 (Expected Results)

各用例 PASS;npm test 全绿。

五、 实际测试结果与判定 (Actual Results & Evaluation)

用例 1:版本冲突 409

  • 输入: SavePlan 后以 expected_selection_version=999 再 PUT
  • 实际输出: HTTP 409;嵌套业务码 ERR_CONCURRENT_SWITCH;recovery=retry_after_switch
  • 判定: PASS(live.json)

用例 2:终止 preview

  • 输入: 激活实例后 GET /api/v1/workflow-instances/{id}/termination-preview
  • 实际输出: 200;keys 含 can_terminate / pending_documents / in_progress_task_runs / impact
  • 判定: PASS

用例 3:激活后冻结刷新

  • 输入: 激活后 PUT 旧 revision
  • 实际输出: 409;业务码 PLAN_FROZEN;recovery=refresh_and_freeze
  • 判定: PASS

用例 4:错误解包单测

六、 自动化测试套件汇总 (Test Suite Execution)

cd web && npm test → 376 pass (tsx) + 32 pass (vitest) EXIT 0

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

  • 发布门禁「前端:版本冲突刷新、终止 preview」可 ☑。
  • 后续可将信封解包复用到其他 409 消费方,避免只认 VERSION_CONFLICT。