...
1
2
3
4
5
6
7
8
9
10
11
12
13 package kt
14
15 import (
16 "net/url"
17 "os"
18 "testing"
19
20 kivik "github.com/go-kivik/kivik/v4"
21 )
22
23
24 func DSN3(t *testing.T) string {
25 t.Helper()
26 for _, env := range []string{
27 "KIVIK_TEST_DSN_COUCH33",
28 "KIVIK_TEST_DSN_COUCH32",
29 "KIVIK_TEST_DSN_COUCH31",
30 "KIVIK_TEST_DSN_COUCH30",
31 } {
32 dsn := os.Getenv(env)
33 if dsn != "" {
34 return dsn
35 }
36 }
37 t.Skip("DSN not set")
38 return ""
39 }
40
41
42 func NoAuthDSN(t *testing.T) string {
43 t.Helper()
44 dsn := DSN3(t)
45 parsed, err := url.Parse(dsn)
46 if err != nil {
47 t.Fatalf("invalid DSN: %s", err)
48 }
49 parsed.User = nil
50 return parsed.String()
51 }
52
53 func connect(t *testing.T, dsn string) *kivik.Client {
54 t.Helper()
55 client, err := kivik.New("couch", dsn)
56 if err != nil {
57 t.Fatalf("Failed to connect to '%s': %s", dsn, err)
58 }
59 return client
60 }
61
62
63 func GetClient(t *testing.T) *kivik.Client {
64 t.Helper()
65 return connect(t, DSN3(t))
66 }
67
68
69 func GetNoAuthClient(t *testing.T) *kivik.Client {
70 t.Helper()
71 return connect(t, NoAuthDSN(t))
72 }
73
View as plain text