...

Source file src/edge-infra.dev/pkg/edge/datasync/controllers/couchctl/server_controller_touchpoint_test.go

Documentation: edge-infra.dev/pkg/edge/datasync/controllers/couchctl

     1  package couchctl
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"sigs.k8s.io/controller-runtime/pkg/client"
     8  
     9  	"edge-infra.dev/pkg/edge/constants/api/cluster"
    10  	"edge-infra.dev/pkg/edge/constants/api/fleet"
    11  	"edge-infra.dev/pkg/edge/datasync/couchdb"
    12  	"edge-infra.dev/pkg/k8s/testing/kmp"
    13  	"edge-infra.dev/test/f2"
    14  	"edge-infra.dev/test/f2/x/ktest"
    15  
    16  	"github.com/stretchr/testify/require"
    17  	corev1 "k8s.io/api/core/v1"
    18  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    19  )
    20  
    21  func TestTouchpointServerController(t *testing.T) {
    22  	fin := f2.NewFeature("CouchServerReconciler Touchpoint").
    23  		WithLabel(_fleetType, fleet.Store).
    24  		WithLabel(_clusterType, cluster.DSDS).
    25  		Setup("Touchpoint CouchDBServer Exists", func(ctx f2.Context, t *testing.T) f2.Context {
    26  			k := ktest.FromContextT(ctx, t)
    27  
    28  			require.NoError(t, client.IgnoreAlreadyExists(k.Client.Create(ctx, touchpointSever)))
    29  			return ctx
    30  		}).
    31  		Test("CouchDB Pods Ready", func(ctx f2.Context, t *testing.T) f2.Context {
    32  			k := ktest.FromContextT(ctx, t)
    33  			podNum := touchpointSever.Spec.Cluster.Nodes
    34  			podLabel := fmt.Sprintf("%s-%s", couchdb.Namespace, laneNumber)
    35  			for i := 0; i < podNum; i++ {
    36  				pod := &corev1.Pod{
    37  					ObjectMeta: metav1.ObjectMeta{
    38  						Name:      fmt.Sprintf("%s-%d", podLabel, i),
    39  						Namespace: couchdb.Namespace,
    40  					},
    41  				}
    42  				k.WaitOn(t, k.Check(pod, kmp.IsCurrent()))
    43  			}
    44  			return ctx
    45  		}).
    46  		Test("CouchDBServer Ready", func(ctx f2.Context, t *testing.T) f2.Context {
    47  			k := ktest.FromContextT(ctx, t)
    48  			k.WaitOn(t, k.Check(touchpointSever, kmp.IsReady()))
    49  			return ctx
    50  		}).
    51  		Feature()
    52  
    53  	f.Test(t, fin)
    54  }
    55  

View as plain text