From ec808336110de56da86df2aa6497f397566ba185 Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Mon, 13 Oct 2025 21:20:03 +0800 Subject: [PATCH] Fix EventKindJobSnoozed detection in `rivertest.Worker` https://github.com/riverqueue/river/pull/1037 added `CompleterJobUpdated.Snoozed`, which needs to be checked first when determining EventKind. --- rivertest/worker.go | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/rivertest/worker.go b/rivertest/worker.go index 7b8e48fd..8ef4db31 100644 --- a/rivertest/worker.go +++ b/rivertest/worker.go @@ -243,20 +243,24 @@ func completerResultToWorkResult(tb testing.TB, completerResult jobcompleter.Com tb.Helper() var kind river.EventKind - switch completerResult.Job.State { - case rivertype.JobStateCancelled: - kind = river.EventKindJobCancelled - case rivertype.JobStateCompleted: - kind = river.EventKindJobCompleted - case rivertype.JobStateScheduled: + if completerResult.Snoozed { kind = river.EventKindJobSnoozed - case rivertype.JobStateAvailable, rivertype.JobStateDiscarded, rivertype.JobStateRetryable, rivertype.JobStateRunning: - kind = river.EventKindJobFailed - case rivertype.JobStatePending: - panic("test worker internal error: completion subscriber unexpectedly received job in pending state, river bug") - default: - // linter exhaustive rule prevents this from being reached - panic("test worker internal error: unreachable state to distribute, river bug") + } else { + switch completerResult.Job.State { + case rivertype.JobStateCancelled: + kind = river.EventKindJobCancelled + case rivertype.JobStateCompleted: + kind = river.EventKindJobCompleted + case rivertype.JobStateScheduled: + kind = river.EventKindJobSnoozed + case rivertype.JobStateAvailable, rivertype.JobStateDiscarded, rivertype.JobStateRetryable, rivertype.JobStateRunning: + kind = river.EventKindJobFailed + case rivertype.JobStatePending: + panic("test worker internal error: completion subscriber unexpectedly received job in pending state, river bug") + default: + // linter exhaustive rule prevents this from being reached + panic("test worker internal error: unreachable state to distribute, river bug") + } } return &WorkResult{