MCPcopy Index your code
hub / github.com/riverqueue/river / Test_Client_JobRetry

Function Test_Client_JobRetry

client_test.go:5191–5264  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

5189}
5190
5191func Test_Client_JobRetry(t *testing.T) {
5192 t.Parallel()
5193
5194 ctx := context.Background()
5195
5196 type testBundle struct {
5197 dbPool *pgxpool.Pool
5198 }
5199
5200 setup := func(t *testing.T) (*Client[pgx.Tx], *testBundle) {
5201 t.Helper()
5202
5203 var (
5204 dbPool = riversharedtest.DBPool(ctx, t)
5205 driver = riverpgxv5.New(dbPool)
5206 schema = riverdbtest.TestSchema(ctx, t, driver, nil)
5207 config = newTestConfig(t, schema)
5208 client = newTestClient(t, dbPool, config)
5209 )
5210
5211 return client, &testBundle{dbPool: dbPool}
5212 }
5213
5214 t.Run("UpdatesAJobScheduledInTheFutureToBeImmediatelyAvailable", func(t *testing.T) {
5215 t.Parallel()
5216
5217 client, _ := setup(t)
5218
5219 insertRes, err := client.Insert(ctx, noOpArgs{}, &InsertOpts{ScheduledAt: time.Now().Add(time.Hour)})
5220 require.NoError(t, err)
5221 require.Equal(t, rivertype.JobStateScheduled, insertRes.Job.State)
5222
5223 job, err := client.JobRetry(ctx, insertRes.Job.ID)
5224 require.NoError(t, err)
5225 require.NotNil(t, job)
5226
5227 require.Equal(t, rivertype.JobStateAvailable, job.State)
5228 require.WithinDuration(t, time.Now().UTC(), job.ScheduledAt, 5*time.Second)
5229 })
5230
5231 t.Run("TxVariantAlsoUpdatesJobToAvailable", func(t *testing.T) {
5232 t.Parallel()
5233
5234 client, bundle := setup(t)
5235
5236 insertRes, err := client.Insert(ctx, noOpArgs{}, &InsertOpts{ScheduledAt: time.Now().Add(time.Hour)})
5237 require.NoError(t, err)
5238 require.Equal(t, rivertype.JobStateScheduled, insertRes.Job.State)
5239
5240 var jobAfter *rivertype.JobRow
5241
5242 err = pgx.BeginFunc(ctx, bundle.dbPool, func(tx pgx.Tx) error {
5243 var err error
5244 jobAfter, err = client.JobRetryTx(ctx, tx, insertRes.Job.ID)
5245 return err
5246 })
5247 require.NoError(t, err)
5248 require.NotNil(t, jobAfter)

Callers

nothing calls this directly

Calls 13

DBPoolFunction · 0.92
NewFunction · 0.92
TestSchemaFunction · 0.92
newTestClientFunction · 0.85
InsertMethod · 0.80
JobRetryTxMethod · 0.80
newTestConfigFunction · 0.70
HelperMethod · 0.65
RunMethod · 0.65
NowMethod · 0.65
JobRetryMethod · 0.65
AddMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…