Add Github integration to subtasks
Change-Id: If382f2f5238e9d2323d6c2761d3d70a626ff9065
diff --git a/server/subtasks/service_test.go b/server/subtasks/service_test.go
index ade62fc..158bcdc 100644
--- a/server/subtasks/service_test.go
+++ b/server/subtasks/service_test.go
@@ -80,7 +80,7 @@
mockProvider := NewMockLLMProvider([]string{})
agentRoles := []string{"backend", "frontend", "qa"}
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
if service == nil {
t.Fatal("NewSubtaskService returned nil")
@@ -106,7 +106,7 @@
mockProvider := NewMockLLMProvider([]string{decisionResponse})
agentRoles := []string{"backend", "frontend", "qa"}
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
// Test the parseSubtaskDecision method directly since ShouldGenerateSubtasks is used by manager
decision, err := service.parseSubtaskDecision(decisionResponse)
@@ -165,7 +165,7 @@
mockProvider := NewMockLLMProvider([]string{jsonResponse})
agentRoles := []string{"backend", "frontend", "qa", "ceo"} // Include CEO for agent creation
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
task := &tm.Task{
ID: "test-task-123",
@@ -266,7 +266,7 @@
mockProvider := NewMockLLMProvider([]string{invalidResponse})
agentRoles := []string{"backend", "frontend"}
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
task := &tm.Task{
ID: "test-task-123",
@@ -302,7 +302,7 @@
mockProvider := NewMockLLMProvider([]string{jsonResponse})
agentRoles := []string{"backend", "frontend"}
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
task := &tm.Task{
ID: "test-task-123",
@@ -322,7 +322,7 @@
func TestGenerateSubtaskPR(t *testing.T) {
mockProvider := NewMockLLMProvider([]string{})
- service := NewSubtaskService(mockProvider, nil, []string{"backend"})
+ service := NewSubtaskService(mockProvider, nil, []string{"backend"}, nil, "example", "repo", nil)
analysis := &tm.SubtaskAnalysis{
ParentTaskID: "task-123",
@@ -342,21 +342,21 @@
},
}
- prURL, err := service.GenerateSubtaskPR(context.Background(), analysis)
- if err != nil {
- t.Fatalf("GenerateSubtaskPR failed: %v", err)
+ // Test that PR generation fails when no PR provider is configured
+ _, err := service.GenerateSubtaskPR(context.Background(), analysis)
+ if err == nil {
+ t.Error("Expected error when PR provider not configured, got nil")
}
- expectedURL := "https://github.com/example/repo/pull/subtasks-task-123"
- if prURL != expectedURL {
- t.Errorf("Expected PR URL %s, got %s", expectedURL, prURL)
+ if !strings.Contains(err.Error(), "PR provider not configured") {
+ t.Errorf("Expected 'PR provider not configured' error, got: %v", err)
}
}
func TestBuildSubtaskAnalysisPrompt(t *testing.T) {
mockProvider := NewMockLLMProvider([]string{})
agentRoles := []string{"backend", "frontend", "qa"}
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
task := &tm.Task{
Title: "Build authentication system",
@@ -387,7 +387,7 @@
func TestGetSubtaskAnalysisSystemPrompt(t *testing.T) {
mockProvider := NewMockLLMProvider([]string{})
agentRoles := []string{"backend", "frontend", "qa", "devops"}
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
systemPrompt := service.getSubtaskAnalysisSystemPrompt()
@@ -411,7 +411,7 @@
func TestIsValidAgentRole(t *testing.T) {
mockProvider := NewMockLLMProvider([]string{})
agentRoles := []string{"backend", "frontend", "qa"}
- service := NewSubtaskService(mockProvider, nil, agentRoles)
+ service := NewSubtaskService(mockProvider, nil, agentRoles, nil, "example", "repo", nil)
if !service.isValidAgentRole("backend") {
t.Error("'backend' should be a valid agent role")
@@ -432,7 +432,7 @@
func TestParseSubtaskAnalysis_Priority(t *testing.T) {
mockProvider := NewMockLLMProvider([]string{})
- service := NewSubtaskService(mockProvider, nil, []string{"backend"})
+ service := NewSubtaskService(mockProvider, nil, []string{"backend"}, nil, "example", "repo", nil)
tests := []struct {
input string
@@ -484,7 +484,7 @@
func TestClose(t *testing.T) {
mockProvider := NewMockLLMProvider([]string{})
- service := NewSubtaskService(mockProvider, nil, []string{"backend"})
+ service := NewSubtaskService(mockProvider, nil, []string{"backend"}, nil, "example", "repo", nil)
err := service.Close()
if err != nil {
@@ -511,7 +511,7 @@
}`
mockProvider := NewMockLLMProvider([]string{jsonResponse})
- service := NewSubtaskService(mockProvider, nil, []string{"backend", "frontend"})
+ service := NewSubtaskService(mockProvider, nil, []string{"backend", "frontend"}, nil, "example", "repo", nil)
task := &tm.Task{
ID: "benchmark-task",