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

Function assertTerminalStopFailureLeavesRunActive

internal/task/manager_test.go:6281–6333  ·  view source on GitHub ↗
(
	t *testing.T,
	requestStopErr error,
	forceStopErr error,
	transition func(context.Context, *Service, string, ActorContext) error,
)

Source from the content-addressed store, hash-verified

6279}
6280
6281func assertTerminalStopFailureLeavesRunActive(
6282 t *testing.T,
6283 requestStopErr error,
6284 forceStopErr error,
6285 transition func(context.Context, *Service, string, ActorContext) error,
6286) {
6287 t.Helper()
6288
6289 store := newInMemoryManagerStore()
6290 executor := &recordingSessionExecutor{
6291 requestStopErr: requestStopErr,
6292 forceStopErr: forceStopErr,
6293 }
6294 manager := newTaskManagerForTestWithOptions(
6295 t,
6296 store,
6297 WithSessionExecutor(executor),
6298 WithCancelGracePeriod(0),
6299 )
6300 actor := validActorContext()
6301 runningRun := createRunningRunForTest(t, manager, actor)
6302
6303 err := transition(context.Background(), manager, runningRun.ID, actor)
6304 if err == nil {
6305 t.Fatal("transition() error = nil, want stop failure")
6306 }
6307
6308 storedRun, getRunErr := store.GetTaskRun(context.Background(), runningRun.ID)
6309 if getRunErr != nil {
6310 t.Fatalf("GetTaskRun() error = %v", getRunErr)
6311 }
6312 if got, want := storedRun.Status, TaskRunStatusRunning; got != want {
6313 t.Fatalf("storedRun.Status = %q, want %q", got, want)
6314 }
6315 if !storedRun.EndedAt.IsZero() {
6316 t.Fatalf("storedRun.EndedAt = %v, want zero", storedRun.EndedAt)
6317 }
6318 if got, want := store.tasks[storedRun.TaskID].Status, TaskStatusInProgress; got != want {
6319 t.Fatalf("task.Status = %q, want %q", got, want)
6320 }
6321 if len(executor.requestStopCalls) != 1 {
6322 t.Fatalf("len(requestStopCalls) = %d, want 1", len(executor.requestStopCalls))
6323 }
6324 if requestStopErr != nil {
6325 if len(executor.forceStopCalls) != 0 {
6326 t.Fatalf("len(forceStopCalls) = %d, want 0", len(executor.forceStopCalls))
6327 }
6328 return
6329 }
6330 if len(executor.forceStopCalls) != 1 {
6331 t.Fatalf("len(forceStopCalls) = %d, want 1", len(executor.forceStopCalls))
6332 }
6333}
6334
6335func TestManagerTaskReconciliationAcrossDependenciesAndRuns(t *testing.T) {
6336 t.Parallel()

Calls 8

newInMemoryManagerStoreFunction · 0.85
WithSessionExecutorFunction · 0.85
WithCancelGracePeriodFunction · 0.85
validActorContextFunction · 0.85
createRunningRunForTestFunction · 0.85
GetTaskRunMethod · 0.65
IsZeroMethod · 0.45

Tested by

no test coverage detected