package cloudtoedge import ( "testing" dsapi "edge-infra.dev/pkg/edge/datasync/apis/v1alpha1" "edge-infra.dev/pkg/k8s/testing/kmp" "edge-infra.dev/test/f2" "edge-infra.dev/test/f2/x/ktest" "gotest.tools/v3/assert" "gotest.tools/v3/assert/cmp" "sigs.k8s.io/controller-runtime/pkg/client" ) func TestCouchDBResources(t *testing.T) { var k *ktest.K8s feature := f2.NewFeature("CouchDB Resources Check"). Test("Verify CouchDBPersistence in ready state", func(ctx f2.Context, t *testing.T) f2.Context { k = ktest.FromContextT(ctx, t) persistenceResources := dsapi.CouchDBPersistenceList{} err := k.Client.List(ctx, &persistenceResources, client.InNamespace(couchNamespace)) assert.NilError(t, err) assert.Assert(t, len(persistenceResources.Items) > 0, "CouchDBPersistence should not be empty") for _, persistence := range persistenceResources.Items { persistence := persistence k.WaitOn(t, k.Check(&persistence, kmp.IsReady())) } return ctx }). Test("Verify CouchDBServer in ready state", func(ctx f2.Context, t *testing.T) f2.Context { servers := dsapi.CouchDBServerList{} err := k.Client.List(ctx, &servers, client.InNamespace(couchNamespace)) assert.NilError(t, err) assert.Check(t, cmp.Len(servers.Items, len(nodes.Items)), "number of couchdb servers not equal to number of nodes") for _, server := range servers.Items { server := server k.WaitOn(t, k.Check(&server, kmp.IsReady())) } return ctx }). Test("Verify CouchDBUser in ready state", func(ctx f2.Context, t *testing.T) f2.Context { users := dsapi.CouchDBUserList{} err := k.Client.List(ctx, &users, client.InNamespace(couchNamespace)) assert.NilError(t, err) assert.Check(t, cmp.Len(users.Items, len(nodes.Items)), "number of couchdb users not equal to number of nodes") for _, user := range users.Items { user := user k.WaitOn(t, k.Check(&user, kmp.IsReady())) } return ctx }). Test("Verify CouchDBReplicationSet in ready state", func(ctx f2.Context, t *testing.T) f2.Context { replications := dsapi.CouchDBReplicationSetList{} err := k.Client.List(ctx, &replications, client.InNamespace(couchNamespace)) assert.NilError(t, err) assert.Check(t, cmp.Len(replications.Items, len(nodes.Items)), "number of replications not equal to number of nodes") for _, replication := range replications.Items { repl := replication k.WaitOn(t, k.Check(&repl, kmp.IsReady())) } return ctx }). Feature() f.Test(t, feature) }