1 package cloudtoedge
2
3 import (
4 "testing"
5
6 dsapi "edge-infra.dev/pkg/edge/datasync/apis/v1alpha1"
7 "edge-infra.dev/pkg/k8s/testing/kmp"
8 "edge-infra.dev/test/f2"
9 "edge-infra.dev/test/f2/x/ktest"
10
11 "gotest.tools/v3/assert"
12 "gotest.tools/v3/assert/cmp"
13
14 "sigs.k8s.io/controller-runtime/pkg/client"
15 )
16
17 func TestCouchDBResources(t *testing.T) {
18 var k *ktest.K8s
19 feature := f2.NewFeature("CouchDB Resources Check").
20 Test("Verify CouchDBPersistence in ready state", func(ctx f2.Context, t *testing.T) f2.Context {
21 k = ktest.FromContextT(ctx, t)
22 persistenceResources := dsapi.CouchDBPersistenceList{}
23 err := k.Client.List(ctx, &persistenceResources, client.InNamespace(couchNamespace))
24 assert.NilError(t, err)
25 assert.Assert(t, len(persistenceResources.Items) > 0, "CouchDBPersistence should not be empty")
26
27 for _, persistence := range persistenceResources.Items {
28 persistence := persistence
29 k.WaitOn(t, k.Check(&persistence, kmp.IsReady()))
30 }
31 return ctx
32 }).
33 Test("Verify CouchDBServer in ready state", func(ctx f2.Context, t *testing.T) f2.Context {
34 servers := dsapi.CouchDBServerList{}
35 err := k.Client.List(ctx, &servers, client.InNamespace(couchNamespace))
36 assert.NilError(t, err)
37 assert.Check(t, cmp.Len(servers.Items, len(nodes.Items)), "number of couchdb servers not equal to number of nodes")
38
39 for _, server := range servers.Items {
40 server := server
41 k.WaitOn(t, k.Check(&server, kmp.IsReady()))
42 }
43 return ctx
44 }).
45 Test("Verify CouchDBUser in ready state", func(ctx f2.Context, t *testing.T) f2.Context {
46 users := dsapi.CouchDBUserList{}
47 err := k.Client.List(ctx, &users, client.InNamespace(couchNamespace))
48 assert.NilError(t, err)
49 assert.Check(t, cmp.Len(users.Items, len(nodes.Items)), "number of couchdb users not equal to number of nodes")
50
51 for _, user := range users.Items {
52 user := user
53 k.WaitOn(t, k.Check(&user, kmp.IsReady()))
54 }
55 return ctx
56 }).
57 Test("Verify CouchDBReplicationSet in ready state", func(ctx f2.Context, t *testing.T) f2.Context {
58 replications := dsapi.CouchDBReplicationSetList{}
59 err := k.Client.List(ctx, &replications, client.InNamespace(couchNamespace))
60 assert.NilError(t, err)
61 assert.Check(t, cmp.Len(replications.Items, len(nodes.Items)), "number of replications not equal to number of nodes")
62
63 for _, replication := range replications.Items {
64 repl := replication
65 k.WaitOn(t, k.Check(&repl, kmp.IsReady()))
66 }
67 return ctx
68 }).
69 Feature()
70 f.Test(t, feature)
71 }
72
View as plain text