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

Function exerciseQueue

riverdriver/riverdrivertest/queue.go:18–528  ·  view source on GitHub ↗
(ctx context.Context, t *testing.T, executorWithTx func(ctx context.Context, t *testing.T) (riverdriver.Executor, riverdriver.Driver[TTx]))

Source from the content-addressed store, hash-verified

16)
17
18func exerciseQueue[TTx any](ctx context.Context, t *testing.T, executorWithTx func(ctx context.Context, t *testing.T) (riverdriver.Executor, riverdriver.Driver[TTx])) {
19 t.Helper()
20
21 type testBundle struct {
22 driver riverdriver.Driver[TTx]
23 }
24
25 setup := func(ctx context.Context, t *testing.T) (riverdriver.Executor, *testBundle) {
26 t.Helper()
27
28 exec, driver := executorWithTx(ctx, t)
29
30 return exec, &testBundle{
31 driver: driver,
32 }
33 }
34
35 t.Run("QueueCreateOrSetUpdatedAt", func(t *testing.T) {
36 t.Parallel()
37
38 mustUnmarshalJSON := func(t *testing.T, data []byte) map[string]any {
39 t.Helper()
40
41 var dataMap map[string]any
42 require.NoError(t, json.Unmarshal(data, &dataMap))
43 return dataMap
44 }
45
46 t.Run("InsertsANewQueueWithDefaultUpdatedAt", func(t *testing.T) {
47 t.Parallel()
48
49 exec, bundle := setup(ctx, t)
50
51 metadata := []byte(`{"foo": "bar"}`)
52 now := time.Now().UTC()
53 queue, err := exec.QueueCreateOrSetUpdatedAt(ctx, &riverdriver.QueueCreateOrSetUpdatedAtParams{
54 Metadata: metadata,
55 Name: "new-queue",
56 Now: &now,
57 })
58 require.NoError(t, err)
59 require.WithinDuration(t, now, queue.CreatedAt, bundle.driver.TimePrecision())
60 require.JSONEq(t, string(metadata), string(queue.Metadata))
61 require.Equal(t, "new-queue", queue.Name)
62 require.Nil(t, queue.PausedAt)
63 require.WithinDuration(t, now, queue.UpdatedAt, bundle.driver.TimePrecision())
64 })
65
66 t.Run("InsertsANewQueueWithCustomPausedAt", func(t *testing.T) {
67 t.Parallel()
68
69 exec, bundle := setup(ctx, t)
70
71 now := time.Now().UTC().Add(-5 * time.Minute)
72 queue, err := exec.QueueCreateOrSetUpdatedAt(ctx, &riverdriver.QueueCreateOrSetUpdatedAtParams{
73 Name: "new-queue",
74 PausedAt: ptrutil.Ptr(now),
75 })

Callers 1

ExerciseFunction · 0.85

Calls 15

PtrFunction · 0.92
QueueFunction · 0.92
mustUnmarshalJSONFunction · 0.85
HelperMethod · 0.65
RunMethod · 0.65
NowMethod · 0.65
TimePrecisionMethod · 0.65
QueueDeleteExpiredMethod · 0.65
QueueGetMethod · 0.65
QueueListMethod · 0.65
QueueNameListMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…