package bizdev import ( "context" "errors" "strings" "testing" "chat-agent-system/internal/config" "chat-agent-system/internal/projectworkflow" "chat-agent-system/internal/squad" ) // TestRDev_PrecheckAndKindOrchestration 覆盖 rdev 硬门禁与 kind 编排(stub,无真实 PI)。 func TestRDev_PrecheckAndKindOrchestration(t *testing.T) { cfg := &config.Config{DataDir: t.TempDir(), AllowInMemory: true, AgentBackend: "stub"} svc, err := NewService(cfg) if err != nil { t.Fatal(err) } _, err = svc.ExecuteTask(context.Background(), TaskRunRequest{ TaskKey: "rd_proposal", ProjectID: 9001, Backend: "stub", WorkDir: t.TempDir(), }) if err == nil || !errors.Is(err, projectworkflow.ErrPrerequisiteNotMet) { t.Fatalf("want ErrPrerequisiteNotMet, got %v", err) } if !strings.Contains(err.Error(), "CDO") { t.Fatalf("message: %v", err) } if n := len(squad.DefaultWorkflowSteps("rd_proposal")); n < 4 { t.Fatalf("document steps=%d", n) } if n := len(squad.DefaultWorkflowSteps("rd_planning_review")); n != 3 { t.Fatalf("review steps=%d", n) } if n := len(squad.DefaultWorkflowSteps("rd_prototype_photos")); n != 4 { t.Fatalf("upload steps=%d", n) } }