Skip to content

Commit 4b2835e

Browse files
committed
Add test for negative cluster creation
Signed-off-by: Frederiko Costa <[email protected]>
1 parent f1a38d4 commit 4b2835e

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

test/e2e/e2e_test.go

Lines changed: 52 additions & 1 deletion
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,7 +35,10 @@ 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
41+
// TODO: update this test once https://github.com/etcd-io/etcd-operator/issues/125 is addressed
3842
func TestZeroMemberCluster(t *testing.T) {
3943
feature := features.New("zero-member-cluster")
4044
etcdClusterName := "etcd-cluster-zero"
@@ -51,7 +55,7 @@ func TestZeroMemberCluster(t *testing.T) {
5155
},
5256
Spec: ecv1alpha1.EtcdClusterSpec{
5357
Size: size,
54-
Version: "v3.5.18",
58+
Version: etcdVersion,
5559
},
5660
}
5761

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

8892
}
8993

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

0 commit comments

Comments
 (0)