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

Function Example_requireInserted

rivertest/example_require_inserted_test.go:30–89  ·  view source on GitHub ↗

Example_requireInserted demonstrates the use of the RequireInserted test assertion, which verifies that a single job was inserted.

()

Source from the content-addressed store, hash-verified

28// Example_requireInserted demonstrates the use of the RequireInserted test
29// assertion, which verifies that a single job was inserted.
30func Example_requireInserted() {
31 ctx := context.Background()
32
33 dbPool, err := pgxpool.New(ctx, riversharedtest.TestDatabaseURL())
34 if err != nil {
35 panic(err)
36 }
37 defer dbPool.Close()
38
39 workers := river.NewWorkers()
40 river.AddWorker(workers, &RequiredWorker{})
41
42 config := initTestConfig(ctx, dbPool, &river.Config{
43 Workers: workers,
44 })
45 schemaOpts := &rivertest.RequireInsertedOpts{Schema: config.Schema}
46
47 riverClient, err := river.NewClient(riverpgxv5.New(dbPool), config)
48 if err != nil {
49 panic(err)
50 }
51
52 tx, err := dbPool.Begin(ctx)
53 if err != nil {
54 panic(err)
55 }
56 defer tx.Rollback(ctx)
57
58 _, err = riverClient.InsertTx(ctx, tx, &RequiredArgs{
59 Message: "Hello.",
60 }, nil)
61 if err != nil {
62 panic(err)
63 }
64
65 // Required for purposes of our example here, but in reality t will be the
66 // *testing.T that comes from a test's argument.
67 t := &testing.T{}
68
69 job := rivertest.RequireInsertedTx[*riverpgxv5.Driver](ctx, t, tx, &RequiredArgs{}, schemaOpts)
70 fmt.Printf("Test passed with message: %s\n", job.Args.Message)
71
72 // Verify the same job again, and this time that it was inserted at the
73 // default priority and default queue.
74 _ = rivertest.RequireInsertedTx[*riverpgxv5.Driver](ctx, t, tx, &RequiredArgs{}, &rivertest.RequireInsertedOpts{
75 Priority: 1,
76 Queue: river.QueueDefault,
77 Schema: config.Schema,
78 })
79
80 // Insert and verify one on a pool instead of transaction.
81 _, err = riverClient.Insert(ctx, &RequiredArgs{Message: "Hello from pool."}, nil)
82 if err != nil {
83 panic(err)
84 }
85 _ = rivertest.RequireInserted(ctx, t, riverpgxv5.New(dbPool), &RequiredArgs{}, schemaOpts)
86
87 // Output:

Callers

nothing calls this directly

Calls 13

TestDatabaseURLFunction · 0.92
NewWorkersFunction · 0.92
AddWorkerFunction · 0.92
NewClientFunction · 0.92
NewFunction · 0.92
RequireInsertedTxFunction · 0.92
RequireInsertedFunction · 0.92
InsertTxMethod · 0.80
InsertMethod · 0.80
initTestConfigFunction · 0.70
CloseMethod · 0.65
BeginMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…