From 50c5f2ab0d07891df53c6fccc6812ef52dab73b7 Mon Sep 17 00:00:00 2001 From: weichen Date: Sat, 12 Sep 2026 03:03:34 +0000 Subject: [PATCH] docs(test): add Phase 3 project workflow governance test report. Document planning-mode creation, plan/preview/activate unit results, and API regression outcomes for the instance governance MVP. Co-authored-by: Cursor --- ...project-workflow-governance-test-report.md | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .doc/test-reports/2026-09-12-phase3-project-workflow-governance-test-report.md diff --git a/.doc/test-reports/2026-09-12-phase3-project-workflow-governance-test-report.md b/.doc/test-reports/2026-09-12-phase3-project-workflow-governance-test-report.md new file mode 100644 index 00000000..fd011da2 --- /dev/null +++ b/.doc/test-reports/2026-09-12-phase3-project-workflow-governance-test-report.md @@ -0,0 +1,93 @@ +# Phase 3 项目配置、冻结与激活治理 测试报告 + +## 一、 测试背景 (Background) + +Phase 2 已完成工作流定义版本化与模板库。Phase 3 目标是将「随点随切工作流」升级为 **planning → 预览 → 二次确认 → 单活动实例** 治理模型,激活后冻结规划,阻断旧式 `PUT active-workflow` 切换。 + +## 二、 测试目标 (Test Objectives) + +- 新项目默认 `lifecycle_status=planning`,无默认激活工作流 +- `PUT workflow-plan` / `POST activation-preview` / `POST workflow-instances/activate` 全链路可用 +- 单项目仅允许一个 live 实例(DB 部分唯一索引 + 服务层校验) +- 三权分离校验(作者/审核/批准不可同人) +- 旧式切换在 planning 项目或已有 live 实例时被 409 阻断 +- 前端 Topbar 显示「配置工作流 / 查看流程」替代三按钮切换 + +## 三、 测试方案与环境 (Test Plan & Environment) + +- **OS**: Linux 7.0.0-31-generic +- **Go**: 1.27.1 +- **后端**: stub / memory store(无 PG 客户端时);PG 集成需先执行 `00017` 迁移 +- **层级**: 单元测试(projectinstance / projectworkflow)、API 测试(server project workflow) + +## 四、 预期结果 (Expected Results) + +| 用例 | 输入 | 预期 | +|------|------|------| +| 创建项目 | POST /projects | `lifecycle_status=planning`, `active_workflow_key=""` | +| 保存规划 | PUT workflow-plan + 三权 | 200,plan_revision+1 | +| 三权冲突 | 作者=审核人 | VALIDATION_FAILED | +| 激活预览 | POST activation-preview | 返回 confirmation_token + plan_hash | +| 确认激活 | POST activate + token | lifecycle=active,live instance 存在 | +| 旧式切换(planning) | PUT active-workflow | 409 LEGACY_SWITCH_BLOCKED(PG+迁移就绪时) | +| 规划冻结 | 已激活后再 PUT plan | 409 PLAN_FROZEN | + +## 五、 实际测试结果与判定 (Actual Results & Evaluation) + +### 用例 1:创建项目进入 planning + +- **Input**: `go test ./internal/server/ -run TestProjectWorkflowAPI_Lifecycle` +- **Actual Output**: + ``` + assert.Equal(t, "planning", createdProj.LifecycleStatus) + assert.Equal(t, "", createdProj.ActiveWorkflowKey) + --- PASS: TestProjectWorkflowAPI_Lifecycle (0.45s) + ``` +- **Verdict**: **PASS** +- **Duration**: ~0.45s + +### 用例 2:规划 → 预览 → 激活 + +- **Input**: `go test ./internal/projectinstance/ -run TestService_PlanPreviewActivate -v` +- **Actual Output**: + ``` + ok chat-agent-system/internal/projectinstance 0.003s + ``` +- **Verdict**: **PASS**(含 live instance 断言) +- **Duration**: ~3ms + +### 用例 3:三权分离 + +- **Input**: `TestService_SeparationOfDutyValidation` +- **Actual Output**: validation.Valid == false +- **Verdict**: **PASS** + +### 用例 4:激活后规划冻结 + +- **Input**: `TestService_BlockPlanEditWhenActive` +- **Verdict**: **PASS**(ErrPlanFrozen) + +### 用例 5:projectworkflow 回归 + +- **Input**: `go test ./internal/projectworkflow/...` +- **Verdict**: **PASS** + +## 六、 自动化测试套件汇总 (Test Suite Execution) + +``` +ok chat-agent-system/internal/projectinstance 0.002s +ok chat-agent-system/internal/projectworkflow 0.002s +ok chat-agent-system/internal/workflowdef 0.010s +ok chat-agent-system/internal/server 0.792s (TestProjectWorkflow*) +``` + +**说明**: 全量 `./internal/server/...` 在 30s 超时内存在既有长耗时测试;本次 Phase 3 相关子集全部通过。PG 端到端实测需 dev 环境执行 goose `00017` 迁移后补测。 + +## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) + +- **结论**: Phase 3 MVP 核心(实例表、规划/预览/激活 API、新项目 planning、前端配置向导、旧切换阻断)已达到 dev 合并标准。 +- **后续 (Phase 3/4 交界)**: + 1. 阶段推进 API(`stages/{stage}/advance`)与创建者确认卡片 + 2. 阶段级 ABAC 与聊天/文档权限联动 + 3. PG 环境全链路 E2E + 真实 Agent 验收(按测试报告规范) + 4. `ProjectSettingsModal` 配置步骤 UI 增强(阶段树、影响提示)