(t *testing.T)
| 7885 | } |
| 7886 | |
| 7887 | func TestManagerHelperCoverage(t *testing.T) { |
| 7888 | t.Parallel() |
| 7889 | |
| 7890 | if !hasOpenRun([]Run{{Status: TaskRunStatusQueued}}) { |
| 7891 | t.Fatal("hasOpenRun(queued) = false, want true") |
| 7892 | } |
| 7893 | if hasOpenRun([]Run{{Status: TaskRunStatusCompleted}}) { |
| 7894 | t.Fatal("hasOpenRun(completed) = true, want false") |
| 7895 | } |
| 7896 | if !runComesAfter( |
| 7897 | Run{ID: "run-2", Attempt: 2, QueuedAt: time.Date(2026, 4, 14, 16, 0, 0, 0, time.UTC)}, |
| 7898 | Run{ID: "run-1", Attempt: 1, QueuedAt: time.Date(2026, 4, 14, 15, 0, 0, 0, time.UTC)}, |
| 7899 | ) { |
| 7900 | t.Fatal("runComesAfter(later, earlier) = false, want true") |
| 7901 | } |
| 7902 | if allowsRunTransition(TaskRunStatusCompleted, TaskRunStatusRunning) { |
| 7903 | t.Fatal("allowsRunTransition(completed, running) = true, want false") |
| 7904 | } |
| 7905 | if activeRunRank(TaskRunStatusRunning) <= activeRunRank(TaskRunStatusClaimed) { |
| 7906 | t.Fatal("activeRunRank(running) should outrank claimed") |
| 7907 | } |
| 7908 | if !prefersActiveRun( |
| 7909 | Run{ID: "run-running", Status: TaskRunStatusRunning}, |
| 7910 | Run{ID: "run-claimed", Status: TaskRunStatusClaimed}, |
| 7911 | ) { |
| 7912 | t.Fatal("prefersActiveRun(running, claimed) = false, want true") |
| 7913 | } |
| 7914 | if !prefersActiveRun( |
| 7915 | Run{ |
| 7916 | ID: "run-b", |
| 7917 | Status: TaskRunStatusQueued, |
| 7918 | QueuedAt: time.Date(2026, 4, 14, 17, 0, 0, 0, time.UTC), |
| 7919 | }, |
| 7920 | Run{ |
| 7921 | ID: "run-a", |
| 7922 | Status: TaskRunStatusQueued, |
| 7923 | QueuedAt: time.Date(2026, 4, 14, 17, 0, 0, 0, time.UTC), |
| 7924 | }, |
| 7925 | ) { |
| 7926 | t.Fatal("prefersActiveRun() should break equal activity ties by id") |
| 7927 | } |
| 7928 | if got := taskRunCoordinationChannelID(Run{ |
| 7929 | Metadata: json.RawMessage(`{"coordination_channel_id":"metadata-channel"}`), |
| 7930 | }); got != "metadata-channel" { |
| 7931 | t.Fatalf("taskRunCoordinationChannelID(metadata) = %q, want metadata-channel", got) |
| 7932 | } |
| 7933 | if got := taskRunCoordinationChannelID(Run{NetworkChannel: "network-channel"}); got != "network-channel" { |
| 7934 | t.Fatalf("taskRunCoordinationChannelID(network) = %q, want network-channel", got) |
| 7935 | } |
| 7936 | if got := taskRunMetadataStringList( |
| 7937 | json.RawMessage(`{"required_capabilities":["golang",42,"sqlite"]}`), |
| 7938 | "required_capabilities", |
| 7939 | ); len(got) != 2 || got[0] != "golang" || got[1] != "sqlite" { |
| 7940 | t.Fatalf("taskRunMetadataStringList() = %#v, want golang/sqlite", got) |
| 7941 | } |
| 7942 | |
| 7943 | joined := errorsJoin(nil, ErrValidation) |
| 7944 | if !errors.Is(joined, ErrValidation) { |
nothing calls this directly
no test coverage detected