fix: gate scheduler task concurrency

This commit is contained in:
2026-09-20 20:53:58 +00:00
parent bca8096491
commit cbbe14d6b5
7 changed files with 111 additions and 3 deletions
+23
View File
@@ -163,6 +163,29 @@ func TestFacadeForwardsOnlyMatchingTaskAndLogUpdates(t *testing.T) {
}
}
func TestFacadeSignalsTerminalTaskAfterUpstreamAcceptsIt(t *testing.T) {
facade, assignment, token := testFacade(t)
ctx := WithSPIFFEID(context.Background(), assignment.Identity.SPIFFEID)
if _, err := facade.FetchTask(ctx, authenticatedRequest(&runnerv1.FetchTaskRequest{}, assignment.ID, token)); err != nil {
t.Fatal(err)
}
completed := 0
facade.OnTerminal = func(got taskassignment.Assignment) {
if got.ID != assignment.ID {
t.Fatalf("terminal assignment = %s", got.ID)
}
completed++
}
if _, err := facade.UpdateTask(ctx, authenticatedRequest(&runnerv1.UpdateTaskRequest{
State: &runnerv1.TaskState{Id: 42, Result: runnerv1.Result_RESULT_SUCCESS},
}, assignment.ID, token)); err != nil {
t.Fatal(err)
}
if completed != 1 {
t.Fatalf("terminal notifications = %d", completed)
}
}
func TestCapabilitiesAreDeterministicAndAssignmentScoped(t *testing.T) {
capabilities, err := NewCapabilities([]byte("0123456789abcdef0123456789abcdef"))
if err != nil {