...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package client
15
16 import (
17 "context"
18 "sort"
19
20 "gitlab.com/flimzy/testy"
21
22 kivik "github.com/go-kivik/kivik/v4"
23 "github.com/go-kivik/kivik/v4/kiviktest/kt"
24 )
25
26 func init() {
27 kt.Register("AllDBs", allDBs)
28 }
29
30 func allDBs(ctx *kt.Context) {
31 ctx.RunAdmin(func(ctx *kt.Context) {
32 testAllDBs(ctx, ctx.Admin, ctx.StringSlice("expected"))
33 })
34 ctx.RunNoAuth(func(ctx *kt.Context) {
35 testAllDBs(ctx, ctx.NoAuth, ctx.StringSlice("expected"))
36 })
37 if ctx.RW && ctx.Admin != nil {
38 ctx.Run("RW", func(ctx *kt.Context) {
39 testAllDBsRW(ctx)
40 })
41 }
42 }
43
44 func testAllDBsRW(ctx *kt.Context) {
45 dbName := ctx.TestDB()
46 expected := append(ctx.StringSlice("expected"), dbName)
47 ctx.Run("group", func(ctx *kt.Context) {
48 ctx.RunAdmin(func(ctx *kt.Context) {
49 testAllDBs(ctx, ctx.Admin, expected)
50 })
51 ctx.RunNoAuth(func(ctx *kt.Context) {
52 testAllDBs(ctx, ctx.NoAuth, expected)
53 })
54 })
55 }
56
57 func testAllDBs(ctx *kt.Context, client *kivik.Client, expected []string) {
58 ctx.Parallel()
59 allDBs, err := client.AllDBs(context.Background())
60 if !ctx.IsExpectedSuccess(err) {
61 return
62 }
63 sort.Strings(expected)
64 sort.Strings(allDBs)
65 if d := testy.DiffTextSlices(expected, allDBs); d != nil {
66 ctx.Errorf("AllDBs() returned unexpected list:\n%s\n", d)
67 }
68 }
69
View as plain text