Skip to content

Commit 2e25fd8

Browse files
committed
Add test for negative cluster creation
1 parent 3b36917 commit 2e25fd8

File tree

1 file changed

+51
-1
lines changed

1 file changed

+51
-1
lines changed

test/e2e/e2e_test.go

+51-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package e2e
1818

1919
import (
2020
"context"
21+
"os"
2122
"testing"
2223
"time"
2324

@@ -34,6 +35,8 @@ import (
3435
ecv1alpha1 "go.etcd.io/etcd-operator/api/v1alpha1"
3536
)
3637

38+
var etcdVersion = os.Getenv("ETCD_VERSION")
39+
3740
// TestZeroMemberCluster tests if zero member Etcd Cluster does not create its StatefulSet
3841
func TestZeroMemberCluster(t *testing.T) {
3942
feature := features.New("zero-member-cluster")
@@ -51,7 +54,7 @@ func TestZeroMemberCluster(t *testing.T) {
5154
},
5255
Spec: ecv1alpha1.EtcdClusterSpec{
5356
Size: size,
54-
Version: "v3.5.18",
57+
Version: etcdVersion,
5558
},
5659
}
5760

@@ -87,6 +90,53 @@ func TestZeroMemberCluster(t *testing.T) {
8790

8891
}
8992

93+
// TestNegativeClusterSize tests negative membership cluster creation
94+
func TestNegativeClusterSize(t *testing.T) {
95+
feature := features.New("negative-member-cluster")
96+
etcdClusterName := "etcd-cluster-negative"
97+
size := -1
98+
99+
etcdClusterSpec := &ecv1alpha1.EtcdCluster{
100+
TypeMeta: metav1.TypeMeta{
101+
APIVersion: "operator.etcd.io/v1alpha1",
102+
Kind: "EtcdCluster",
103+
},
104+
ObjectMeta: metav1.ObjectMeta{
105+
Name: etcdClusterName,
106+
Namespace: namespace,
107+
},
108+
Spec: ecv1alpha1.EtcdClusterSpec{
109+
Size: size,
110+
Version: etcdVersion,
111+
},
112+
}
113+
114+
feature.Setup(func(ctx context.Context, t *testing.T, c *envconf.Config) context.Context {
115+
116+
err := c.Client().Resources().Create(ctx, etcdClusterSpec)
117+
if !errors.IsInvalid(err) {
118+
t.Fatalf("etcdCluster with negative size failed with unexpected error: %s", err)
119+
}
120+
121+
return ctx
122+
})
123+
124+
feature.Assess("etcdCluster resource should not be created when etcdCluster.Spec.Size is negative",
125+
func(ctx context.Context, t *testing.T, c *envconf.Config) context.Context {
126+
127+
var etcdCluster ecv1alpha1.EtcdCluster
128+
err := c.Client().Resources().Get(ctx, etcdClusterName, namespace, &etcdCluster)
129+
if !errors.IsNotFound(err) {
130+
t.Fatalf("found etcdCluster resource with negative size: %s", err)
131+
}
132+
133+
return ctx
134+
},
135+
)
136+
137+
_ = testEnv.Test(t, feature.Feature())
138+
}
139+
90140
func TestClusterHealthy(t *testing.T) {
91141
feature := features.New("etcd-operator-controller")
92142

0 commit comments

Comments
 (0)