@@ -214,51 +214,6 @@ func TestNewClusterScope(t *testing.T) {
214214 })
215215 },
216216 },
217- {
218- name : "Success - Validate getCredentialDataFromRef() returns some apiKey data and we create a valid ClusterScope" ,
219- args : args {
220- apiKey : "test-key" ,
221- dnsApiKey : "test-key" ,
222- params : ClusterScopeParams {
223- Client : nil ,
224- Cluster : & clusterv1.Cluster {},
225- LinodeCluster : & infrav1alpha2.LinodeCluster {
226- Spec : infrav1alpha2.LinodeClusterSpec {
227- CredentialsRef : & corev1.SecretReference {
228- Name : "example" ,
229- Namespace : "test" ,
230- },
231- },
232- },
233- },
234- },
235- expectedError : nil ,
236- expects : func (mock * mock.MockK8sClient ) {
237- mock .EXPECT ().Scheme ().DoAndReturn (func () * runtime.Scheme {
238- s := runtime .NewScheme ()
239- infrav1alpha2 .AddToScheme (s )
240- return s
241- }).AnyTimes ()
242- mock .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any (), gomock .Any ()).DoAndReturn (func (ctx context.Context , key types.NamespacedName , obj * corev1.Secret , opts ... client.GetOption ) error {
243- cred := corev1.Secret {
244- Data : map [string ][]byte {
245- "apiToken" : []byte ("example" ),
246- },
247- }
248- * obj = cred
249- return nil
250- })
251- mock .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any (), gomock .Any ()).DoAndReturn (func (ctx context.Context , key types.NamespacedName , obj * corev1.Secret , opts ... client.GetOption ) error {
252- cred := corev1.Secret {
253- Data : map [string ][]byte {
254- "dnsToken" : []byte ("example" ),
255- },
256- }
257- * obj = cred
258- return nil
259- })
260- },
261- },
262217 {
263218 name : "Error - ValidateClusterScopeParams triggers error because ClusterScopeParams is empty" ,
264219 args : args {
@@ -283,29 +238,6 @@ func TestNewClusterScope(t *testing.T) {
283238 mock .EXPECT ().Scheme ().Return (runtime .NewScheme ())
284239 },
285240 },
286- {
287- name : "Error - Using getCredentialDataFromRef(), func returns an error. Unable to create a valid ClusterScope" ,
288- args : args {
289- apiKey : "test-key" ,
290- dnsApiKey : "test-key" ,
291- params : ClusterScopeParams {
292- Client : nil ,
293- Cluster : & clusterv1.Cluster {},
294- LinodeCluster : & infrav1alpha2.LinodeCluster {
295- Spec : infrav1alpha2.LinodeClusterSpec {
296- CredentialsRef : & corev1.SecretReference {
297- Name : "example" ,
298- Namespace : "test" ,
299- },
300- },
301- },
302- },
303- },
304- expectedError : fmt .Errorf ("credentials from secret ref: get credentials secret test/example: failed to get secret" ),
305- expects : func (mock * mock.MockK8sClient ) {
306- mock .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any ()).Return (fmt .Errorf ("failed to get secret" ))
307- },
308- },
309241 {
310242 name : "Error - createLinodeCluster throws an error for passing empty apiKey. Unable to create a valid ClusterScope" ,
311243 args : args {
@@ -451,3 +383,118 @@ func TestRemoveCredentialsRefFinalizer(t *testing.T) {
451383 })
452384 }
453385}
386+
387+ func TestClusterSetCredentialRefTokenForLinodeClients (t * testing.T ) {
388+ t .Parallel ()
389+ type fields struct {
390+ Cluster * clusterv1.Cluster
391+ LinodeCluster * infrav1alpha2.LinodeCluster
392+ LinodeMachineList infrav1alpha2.LinodeMachineList
393+ }
394+
395+ tests := []struct {
396+ name string
397+ fields fields
398+ expects func (mock * mock.MockK8sClient )
399+ expectedError error
400+ }{
401+ {
402+ name : "Success - Validate getCredentialDataFromRef() returns some apiKey data" ,
403+ fields : fields {
404+ Cluster : & clusterv1.Cluster {},
405+ LinodeMachineList : infrav1alpha2.LinodeMachineList {},
406+ LinodeCluster : & infrav1alpha2.LinodeCluster {
407+ ObjectMeta : metav1.ObjectMeta {
408+ Name : "test-cluster" ,
409+ },
410+ Spec : infrav1alpha2.LinodeClusterSpec {
411+ CredentialsRef : & corev1.SecretReference {
412+ Name : "example" ,
413+ Namespace : "test" ,
414+ },
415+ },
416+ },
417+ },
418+ expectedError : nil ,
419+ expects : func (mock * mock.MockK8sClient ) {
420+ mock .EXPECT ().Scheme ().DoAndReturn (func () * runtime.Scheme {
421+ s := runtime .NewScheme ()
422+ infrav1alpha2 .AddToScheme (s )
423+ return s
424+ })
425+ mock .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any ()).DoAndReturn (func (ctx context.Context , key types.NamespacedName , obj * corev1.Secret , opts ... client.GetOption ) error {
426+ cred := corev1.Secret {
427+ ObjectMeta : metav1.ObjectMeta {
428+ Name : "example" ,
429+ Namespace : "test" ,
430+ },
431+ Data : map [string ][]byte {
432+ "apiToken" : []byte ("example" ),
433+ },
434+ }
435+ * obj = cred
436+
437+ return nil
438+ }).AnyTimes ()
439+ },
440+ },
441+ {
442+ name : "Error - error when getting the credentials secret" ,
443+ fields : fields {
444+ Cluster : & clusterv1.Cluster {},
445+ LinodeMachineList : infrav1alpha2.LinodeMachineList {},
446+ LinodeCluster : & infrav1alpha2.LinodeCluster {
447+ ObjectMeta : metav1.ObjectMeta {
448+ Name : "test-cluster" ,
449+ },
450+ Spec : infrav1alpha2.LinodeClusterSpec {
451+ CredentialsRef : & corev1.SecretReference {
452+ Name : "example" ,
453+ Namespace : "test" ,
454+ },
455+ },
456+ },
457+ },
458+ expectedError : fmt .Errorf ("credentials from secret ref: get credentials secret test/example: test error" ),
459+ expects : func (mock * mock.MockK8sClient ) {
460+ mock .EXPECT ().Scheme ().DoAndReturn (func () * runtime.Scheme {
461+ s := runtime .NewScheme ()
462+ infrav1alpha2 .AddToScheme (s )
463+ return s
464+ })
465+ mock .EXPECT ().Get (gomock .Any (), gomock .Any (), gomock .Any ()).Return (fmt .Errorf ("test error" ))
466+ },
467+ },
468+ }
469+ for _ , tt := range tests {
470+ testcase := tt
471+ t .Run (testcase .name , func (t * testing.T ) {
472+ t .Parallel ()
473+
474+ ctrl := gomock .NewController (t )
475+ defer ctrl .Finish ()
476+
477+ mockK8sClient := mock .NewMockK8sClient (ctrl )
478+
479+ testcase .expects (mockK8sClient )
480+
481+ cScope , err := NewClusterScope (
482+ context .Background (),
483+ ClientConfig {Token : "test-key" },
484+ ClientConfig {Token : "test-key" },
485+ ClusterScopeParams {
486+ Cluster : testcase .fields .Cluster ,
487+ LinodeCluster : testcase .fields .LinodeCluster ,
488+ LinodeMachineList : testcase .fields .LinodeMachineList ,
489+ Client : mockK8sClient ,
490+ })
491+ if err != nil {
492+ t .Errorf ("NewClusterScope() error = %v" , err )
493+ }
494+
495+ if err := cScope .SetCredentialRefTokenForLinodeClients (context .Background ()); err != nil {
496+ assert .ErrorContains (t , err , testcase .expectedError .Error ())
497+ }
498+ })
499+ }
500+ }
0 commit comments