Skip to content

Commit f3b9b64

Browse files
committed
Add error coverage
1 parent a0d3101 commit f3b9b64

File tree

1 file changed

+36
-6
lines changed

1 file changed

+36
-6
lines changed

internal/generated/controller/flexcluster/handler_v20250312_test.go

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
200230
func reenqueueResult(state state.ResourceState, msg string) ctrlstate.Result {
201231
return ctrlstate.Result{
202232
Result: reconcile.Result{RequeueAfter: result.DefaultRequeueTIme},

0 commit comments

Comments
 (0)