summaryrefslogtreecommitdiff
path: root/internal/api/server_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api/server_test.go')
-rw-r--r--internal/api/server_test.go25
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{},