MCPcopy Index your code
hub / github.com/coder/coder / TestDriver

Function TestDriver

coderd/database/awsiamrds/awsiamrds_test.go:17–72  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

15)
16
17func TestDriver(t *testing.T) {
18 t.Parallel()
19 // Be sure to set AWS_DEFAULT_REGION to the database region as well.
20 // Example:
21 // export AWS_DEFAULT_REGION=us-east-2;
22 // export DBAWSIAMRDS_TEST_URL="postgres://user@host:5432/dbname";
23 url := os.Getenv("DBAWSIAMRDS_TEST_URL")
24 if url == "" {
25 t.Log("skipping test; no DBAWSIAMRDS_TEST_URL set")
26 t.Skip()
27 }
28
29 logger := testutil.Logger(t)
30 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
31 defer cancel()
32
33 sqlDriver, err := awsiamrds.Register(ctx, "postgres")
34 require.NoError(t, err)
35
36 db, err := cli.ConnectToPostgres(ctx, testutil.Logger(t), sqlDriver, url, migrations.Up)
37 require.NoError(t, err)
38 defer func() {
39 _ = db.Close()
40 }()
41
42 i, err := db.QueryContext(ctx, "select 1;")
43 require.NoError(t, err)
44 defer func() {
45 _ = i.Close()
46 }()
47
48 require.True(t, i.Next())
49 var one int
50 require.NoError(t, i.Scan(&one))
51 require.Equal(t, 1, one)
52
53 ps, err := pubsub.New(ctx, logger, db, url)
54 require.NoError(t, err)
55 defer ps.Close()
56
57 gotChan := make(chan struct{})
58 subCancel, err := ps.Subscribe("test", func(_ context.Context, _ []byte) {
59 close(gotChan)
60 })
61 require.NoError(t, err)
62 defer subCancel()
63
64 err = ps.Publish("test", []byte("hello"))
65 require.NoError(t, err)
66
67 select {
68 case <-gotChan:
69 case <-ctx.Done():
70 require.Fail(t, "timed out waiting for message")
71 }
72}

Callers

nothing calls this directly

Calls 15

LoggerFunction · 0.92
RegisterFunction · 0.92
ConnectToPostgresFunction · 0.92
NewFunction · 0.92
LogMethod · 0.80
SkipMethod · 0.80
QueryContextMethod · 0.80
CloseMethod · 0.65
NextMethod · 0.65
SubscribeMethod · 0.65
PublishMethod · 0.65
ScanMethod · 0.45

Tested by

no test coverage detected