@@ -70,6 +70,27 @@ func TestHandleInitial(t *testing.T) {
7070 },
7171 want : reenqueueResult (state .StateCreating , "Creating Flex Cluster." ),
7272 },
73+ {
74+ title : "corrupt flex type cluster" ,
75+ flexCluster : withFlexGVK (defaultTestFlexCluster ("test-cluster1" , "ns" ), "bad-kind" , "bad-api-version" ),
76+ kubeObjects : []client.Object {
77+ defaultTestGroup ("some-group" , "ns1" , nil ),
78+ },
79+ want : ctrlstate.Result {NextState : state .StateInitial },
80+ wantErr : "failed to get dependencies: nil flex cluster" ,
81+ },
82+ {
83+ title : "corrupt api reply" ,
84+ flexCluster : defaultTestFlexCluster ("test-cluster" , "ns1" ),
85+ kubeObjects : []client.Object {
86+ defaultTestGroup ("test-group" , "ns1" , nil ),
87+ },
88+ atlasCreateFlexClusterFunc : func () (* v20250312sdk.FlexClusterDescription20241113 , * http.Response , error ) {
89+ return nil , nil , nil
90+ },
91+ want : ctrlstate.Result {NextState : state .StateInitial },
92+ wantErr : "failed to get dependencies: nil flex cluster" ,
93+ },
7394 {
7495 title : "missing group" ,
7596 flexCluster : setGroupRef (defaultTestFlexCluster ("test-cluster1" , "ns" ), "not-found" ),
@@ -99,12 +120,15 @@ func TestHandleInitial(t *testing.T) {
99120 },
100121 } {
101122 t .Run (tc .title , func (t * testing.T ) {
102- allObjects := append ([]client.Object {tc .flexCluster }, tc .kubeObjects ... )
103- fakeClient := fake .NewClientBuilder ().
104- WithScheme (scheme ).
105- WithObjects (allObjects ... ).
106- WithStatusSubresource (tc .flexCluster ).
107- Build ()
123+ allObjects := tc .kubeObjects
124+ clientBuilder := fake .NewClientBuilder ().WithScheme (scheme )
125+ if tc .flexCluster != nil {
126+ allObjects = append ([]client.Object {tc .flexCluster }, tc .kubeObjects ... )
127+ clientBuilder = clientBuilder .WithObjects (allObjects ... ).WithStatusSubresource (tc .flexCluster )
128+ } else {
129+ clientBuilder = clientBuilder .WithObjects (allObjects ... )
130+ }
131+ fakeClient := clientBuilder .Build ()
108132
109133 flexAPI := mockadmin .NewFlexClustersApi (t )
110134 if tc .atlasCreateFlexClusterFunc != nil {
@@ -197,6 +221,12 @@ func defaultTestFlexCluster(name, namespace string) *akov2generated.FlexCluster
197221 }
198222}
199223
224+ func withFlexGVK (flexCluster * akov2generated.FlexCluster , kind string , apiVersion string ) * akov2generated.FlexCluster {
225+ flexCluster .TypeMeta .Kind = kind
226+ flexCluster .TypeMeta .APIVersion = apiVersion
227+ return flexCluster
228+ }
229+
200230func reenqueueResult (state state.ResourceState , msg string ) ctrlstate.Result {
201231 return ctrlstate.Result {
202232 Result : reconcile.Result {RequeueAfter : result .DefaultRequeueTIme },
0 commit comments