MCPcopy Create free account
hub / github.com/compozy/agh / TestTaskParsingAndValidationHelpers

Function TestTaskParsingAndValidationHelpers

internal/api/core/tasks_internal_test.go:184–333  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

182}
183
184func TestTaskParsingAndValidationHelpers(t *testing.T) {
185 t.Parallel()
186
187 gin.SetMode(gin.TestMode)
188 handlers := &BaseHandlers{
189 TransportName: "api-core-test",
190 Workspaces: workspaceServiceStub{get: func(_ context.Context, ref string) (workspacepkg.Workspace, error) {
191 if ref != "alpha" {
192 t.Fatalf("workspace ref = %q, want %q", ref, "alpha")
193 }
194 return workspacepkg.Workspace{ID: "ws-alpha"}, nil
195 }},
196 }
197
198 recorder := httptest.NewRecorder()
199 ctx, _ := gin.CreateTestContext(recorder)
200 ctx.Request = httptest.NewRequestWithContext(
201 context.Background(),
202 http.MethodGet,
203 "/tasks?scope=workspace&workspace=alpha&status=ready&owner_kind=pool&owner_ref=reviewers&parent_task_id=task-root&network_channel=builders&limit=3",
204 http.NoBody,
205 )
206
207 query, err := handlers.parseTaskListQuery(context.Background(), ctx)
208 if err != nil {
209 t.Fatalf("parseTaskListQuery() error = %v", err)
210 }
211 if query.WorkspaceID != "ws-alpha" || query.Status != taskpkg.TaskStatusReady ||
212 query.OwnerKind != taskpkg.OwnerKindPool {
213 t.Fatalf("parseTaskListQuery() = %#v", query)
214 }
215
216 runRecorder := httptest.NewRecorder()
217 runCtx, _ := gin.CreateTestContext(runRecorder)
218 runCtx.Request = httptest.NewRequestWithContext(
219 context.Background(),
220 http.MethodGet,
221 "/tasks/task-1/runs?status=running&session_id=sess-1&limit=1",
222 http.NoBody,
223 )
224
225 runQuery, err := parseTaskRunListQuery(runCtx)
226 if err != nil {
227 t.Fatalf("parseTaskRunListQuery() error = %v", err)
228 }
229 if runQuery.Status != taskpkg.TaskRunStatusRunning || runQuery.SessionID != "sess-1" || runQuery.Limit != 1 {
230 t.Fatalf("parseTaskRunListQuery() = %#v", runQuery)
231 }
232
233 if _, err := addTaskDependencyFromRequest(
234 "task-1",
235 contract.AddTaskDependencyRequest{DependsOnTaskID: "task-2"},
236 ); err != nil {
237 t.Fatalf("addTaskDependencyFromRequest() error = %v", err)
238 }
239 if _, err := claimTaskRunFromRequest(contract.ClaimTaskRunRequest{IdempotencyKey: "claim-1"}); err != nil {
240 t.Fatalf("claimTaskRunFromRequest() error = %v", err)
241 }

Callers

nothing calls this directly

Calls 15

parseTaskListQueryMethod · 0.95
parseTaskRunListQueryFunction · 0.85
requiredPathIDFunction · 0.85
decodeOptionalJSONFunction · 0.85
ContainsMethod · 0.80
claimTaskRunFromRequestFunction · 0.70
startTaskRunFromRequestFunction · 0.70
cancelTaskRunFromRequestFunction · 0.70
cancelTaskFromRequestFunction · 0.70

Tested by

no test coverage detected