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

Function TestQueueCleaner

internal/maintenance/queue_cleaner_test.go:22–305  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

20)
21
22func TestQueueCleaner(t *testing.T) {
23 t.Parallel()
24
25 ctx := context.Background()
26
27 type testBundle struct {
28 deleteHorizon time.Time
29 exec riverdriver.Executor
30 }
31
32 setup := func(t *testing.T) (*QueueCleaner, *testBundle) {
33 t.Helper()
34
35 tx := riverdbtest.TestTxPgx(ctx, t)
36 bundle := &testBundle{
37 deleteHorizon: time.Now().Add(-QueueRetentionPeriodDefault),
38 exec: riverpgxv5.New(nil).UnwrapExecutor(tx),
39 }
40
41 cleaner := NewQueueCleaner(
42 riversharedtest.BaseServiceArchetype(t),
43 &QueueCleanerConfig{
44 Interval: queueCleanerIntervalDefault,
45 RetentionPeriod: QueueRetentionPeriodDefault,
46 },
47 bundle.exec)
48 cleaner.StaggerStartupDisable(true)
49 cleaner.TestSignals.Init(t)
50 t.Cleanup(cleaner.Stop)
51
52 return cleaner, bundle
53 }
54
55 t.Run("Defaults", func(t *testing.T) {
56 t.Parallel()
57
58 cleaner := NewQueueCleaner(riversharedtest.BaseServiceArchetype(t), &QueueCleanerConfig{}, nil)
59
60 require.Equal(t, QueueRetentionPeriodDefault, cleaner.Config.RetentionPeriod)
61 require.Equal(t, queueCleanerIntervalDefault, cleaner.Config.Interval)
62 })
63
64 t.Run("StartStopStress", func(t *testing.T) {
65 t.Parallel()
66
67 cleaner, _ := setup(t)
68 cleaner.Logger = riversharedtest.LoggerWarn(t) // loop started/stop log is very noisy; suppress
69 cleaner.TestSignals = QueueCleanerTestSignals{} // deinit so channels don't fill
70
71 startstoptest.Stress(ctx, t, cleaner)
72 })
73
74 t.Run("DeletesExpiredQueues", func(t *testing.T) {
75 t.Parallel()
76
77 cleaner, bundle := setup(t)
78
79 now := time.Now()

Callers

nothing calls this directly

Calls 15

StartMethod · 0.95
batchSizeMethod · 0.95
runOnceMethod · 0.95
TestTxPgxFunction · 0.92
NewFunction · 0.92
BaseServiceArchetypeFunction · 0.92
LoggerWarnFunction · 0.92
StressFunction · 0.92
QueueFunction · 0.92
PtrFunction · 0.92
WaitOrTimeoutFunction · 0.92
NewQueueCleanerFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…