@@ -7,7 +7,10 @@ import (
77 "bytes"
88 "testing"
99
10+ greenhousemetav1alpha1 "github.com/cloudoperators/greenhouse/api/meta/v1alpha1"
11+ greenhousev1alpha1 "github.com/cloudoperators/greenhouse/api/v1alpha1"
1012 . "github.com/onsi/gomega"
13+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1114 clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
1215)
1316
@@ -145,3 +148,62 @@ func TestGenerateAuthInfoKey_CertBased(t *testing.T) {
145148 g .Expect (ka ).To (Equal (kb ))
146149 g .Expect (bytes .HasPrefix ([]byte (ka ), []byte ("cert:" ))).To (BeTrue (), "cert-based key should have cert: prefix" )
147150}
151+
152+ func TestFilterReady_IncludesOnlyReady (t * testing.T ) {
153+ g := NewWithT (t )
154+
155+ readyCkc := greenhousev1alpha1.ClusterKubeconfig {
156+ ObjectMeta : metav1.ObjectMeta {Name : "ready-cluster" },
157+ Status : greenhousev1alpha1.ClusterKubeconfigStatus {},
158+ }
159+ // Set Ready=True
160+ readyCkc .Status .Conditions .SetConditions (
161+ greenhousemetav1alpha1 .TrueCondition (
162+ greenhousemetav1alpha1 .ReadyCondition ,
163+ "TestReason" ,
164+ "ready" ,
165+ ),
166+ )
167+
168+ notReadyCkc := greenhousev1alpha1.ClusterKubeconfig {
169+ ObjectMeta : metav1.ObjectMeta {Name : "notready-cluster" },
170+ Status : greenhousev1alpha1.ClusterKubeconfigStatus {},
171+ }
172+ // Set Ready=False
173+ notReadyCkc .Status .Conditions .SetConditions (
174+ greenhousemetav1alpha1 .FalseCondition (
175+ greenhousemetav1alpha1 .ReadyCondition ,
176+ "TestReason" ,
177+ "not ready" ,
178+ ),
179+ )
180+
181+ noCondCkc := greenhousev1alpha1.ClusterKubeconfig {
182+ ObjectMeta : metav1.ObjectMeta {Name : "nocond-cluster" },
183+ }
184+
185+ out := filterReady ([]greenhousev1alpha1.ClusterKubeconfig {readyCkc , notReadyCkc , noCondCkc })
186+ g .Expect (out ).To (HaveLen (1 ))
187+ g .Expect (out [0 ].Name ).To (Equal ("ready-cluster" ))
188+ }
189+
190+ func TestFilterReady_EmptyAndNoneReady (t * testing.T ) {
191+ g := NewWithT (t )
192+
193+ // Empty input
194+ out := filterReady (nil )
195+ g .Expect (out ).To (BeNil ())
196+
197+ // None ready input
198+ a := greenhousev1alpha1.ClusterKubeconfig {ObjectMeta : metav1.ObjectMeta {Name : "a" }}
199+ a .Status .Conditions .SetConditions (
200+ greenhousemetav1alpha1 .FalseCondition (
201+ greenhousemetav1alpha1 .ReadyCondition ,
202+ "TestReason" ,
203+ "not ready" ,
204+ ),
205+ )
206+ b := greenhousev1alpha1.ClusterKubeconfig {ObjectMeta : metav1.ObjectMeta {Name : "b" }}
207+ out2 := filterReady ([]greenhousev1alpha1.ClusterKubeconfig {a , b })
208+ g .Expect (out2 ).To (HaveLen (0 ))
209+ }
0 commit comments