diff options
Diffstat (limited to 'internal/api/server_test.go')
| -rw-r--r-- | internal/api/server_test.go | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/internal/api/server_test.go b/internal/api/server_test.go index c3b12ce..cd415ae 100644 --- a/internal/api/server_test.go +++ b/internal/api/server_test.go @@ -84,8 +84,12 @@ func testServer(t *testing.T) (*Server, *storage.DB) { logger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelError})) runner := &mockRunner{} - pool := executor.NewPool(2, runner, store, logger) - srv := NewServer(store, pool, logger, "claude") + runners := map[string]executor.Runner{ + "claude": runner, + "gemini": runner, + } + pool := executor.NewPool(2, runners, store, logger) + srv := NewServer(store, pool, logger, "claude", "gemini") return srv, store } @@ -118,7 +122,8 @@ func TestCreateTask_Success(t *testing.T) { payload := `{ "name": "API Task", "description": "Created via API", - "claude": { + "agent": { + "type": "claude", "instructions": "do the thing", "model": "sonnet" }, @@ -160,7 +165,7 @@ func TestCreateTask_InvalidJSON(t *testing.T) { func TestCreateTask_ValidationFailure(t *testing.T) { srv, _ := testServer(t) - payload := `{"name": "", "claude": {"instructions": ""}}` + payload := `{"name": "", "agent": {"type": "claude", "instructions": ""}}` req := httptest.NewRequest("POST", "/api/tasks", bytes.NewBufferString(payload)) w := httptest.NewRecorder() srv.Handler().ServeHTTP(w, req) @@ -207,7 +212,7 @@ func TestListTasks_WithTasks(t *testing.T) { for i := 0; i < 3; i++ { tk := &task.Task{ ID: fmt.Sprintf("lt-%d", i), Name: fmt.Sprintf("T%d", i), - Claude: task.ClaudeConfig{Instructions: "x"}, Priority: task.PriorityNormal, + Agent: task.AgentConfig{Type: "claude", Instructions: "x"}, Priority: task.PriorityNormal, Retry: task.RetryConfig{MaxAttempts: 1, Backoff: "linear"}, Tags: []string{}, DependsOn: []string{}, State: task.StatePending, } @@ -244,7 +249,7 @@ func createTaskWithState(t *testing.T, store *storage.DB, id string, state task. tk := &task.Task{ ID: id, Name: "test-task-" + id, - Claude: task.ClaudeConfig{Instructions: "do something"}, + Agent: task.AgentConfig{Type: "claude", Instructions: "do something"}, Priority: task.PriorityNormal, Retry: task.RetryConfig{MaxAttempts: 1, Backoff: "linear"}, Tags: []string{}, DependsOn: []string{}, State: task.StatePending, @@ -606,7 +611,7 @@ func TestRunTask_RetryLimitReached_Returns409(t *testing.T) { tk := &task.Task{ ID: "retry-limit-1", Name: "Retry Limit Task", - Claude: task.ClaudeConfig{Instructions: "do something"}, + Agent: task.AgentConfig{Instructions: "do something"}, Priority: task.PriorityNormal, Retry: task.RetryConfig{MaxAttempts: 1, Backoff: "linear"}, Tags: []string{}, @@ -647,7 +652,7 @@ func TestRunTask_WithinRetryLimit_Returns202(t *testing.T) { tk := &task.Task{ ID: "retry-within-1", Name: "Retry Within Task", - Claude: task.ClaudeConfig{Instructions: "do something"}, + Agent: task.AgentConfig{Instructions: "do something"}, Priority: task.PriorityNormal, Retry: task.RetryConfig{MaxAttempts: 3, Backoff: "linear"}, Tags: []string{}, @@ -694,7 +699,7 @@ func TestDeleteTask_Success(t *testing.T) { srv, store := testServer(t) // Create a task to delete. - created := createTestTask(t, srv, `{"name":"Delete Me","claude":{"instructions":"x","model":"sonnet"}}`) + created := createTestTask(t, srv, `{"name":"Delete Me","agent":{"type":"claude","instructions":"x","model":"sonnet"}}`) req := httptest.NewRequest("DELETE", "/api/tasks/"+created.ID, nil) w := httptest.NewRecorder() @@ -729,7 +734,7 @@ func TestDeleteTask_RunningTaskRejected(t *testing.T) { tk := &task.Task{ ID: "running-task-del", Name: "Running Task", - Claude: task.ClaudeConfig{Instructions: "x", Model: "sonnet"}, + Agent: task.AgentConfig{Instructions: "x", Model: "sonnet"}, Priority: task.PriorityNormal, Tags: []string{}, DependsOn: []string{}, |
