@@ -347,3 +347,69 @@ func syncNodeStore(nodeinformer coreinformers.NodeInformer, f *fake.Clientset) e
347347 }
348348 return nodeinformer .Informer ().GetStore ().Replace (newElems , "newRV" )
349349}
350+
351+ func Test_isInitialTag (t * testing.T ) {
352+ testcases := []struct {
353+ name string
354+ node * v1.Node
355+ expectedValue bool
356+ }{
357+ {
358+ name : "node0 is recently created with no labels and will be tagged for the first time" ,
359+ node : & v1.Node {
360+ ObjectMeta : metav1.ObjectMeta {
361+ Name : "node0" ,
362+ },
363+ },
364+ expectedValue : true ,
365+ },
366+ {
367+ name : "node0 has other labels but no taggingControllerLabelKey and will be tagged for the first time" ,
368+ node : & v1.Node {
369+ ObjectMeta : metav1.ObjectMeta {
370+ Name : "node0" ,
371+ Labels : map [string ]string {
372+ "some-other-label" : "value" ,
373+ },
374+ },
375+ },
376+ expectedValue : true ,
377+ },
378+ {
379+ name : "node0 with taggingControllerLabelKey implies that the node was already tagged" ,
380+ node : & v1.Node {
381+ ObjectMeta : metav1.ObjectMeta {
382+ Name : "node0" ,
383+ Labels : map [string ]string {
384+ taggingControllerLabelKey : "9767c4972ba72e87ab553bad2afde741" , // MD5 for key1=value1
385+ },
386+ },
387+ },
388+ expectedValue : false ,
389+ },
390+ {
391+ name : "node0 with taggingControllerLabelKey and other labels should not be initial tag" ,
392+ node : & v1.Node {
393+ ObjectMeta : metav1.ObjectMeta {
394+ Name : "node0" ,
395+ Labels : map [string ]string {
396+ taggingControllerLabelKey : "9767c4972ba72e87ab553bad2afde741" , // MD5 for key1=value1
397+ "some-other-label" : "value" ,
398+ },
399+ },
400+ },
401+ expectedValue : false ,
402+ },
403+ }
404+
405+ tc := & Controller {}
406+
407+ for _ , testcase := range testcases {
408+ t .Run (testcase .name , func (t * testing.T ) {
409+ result := tc .isInitialTag (testcase .node )
410+ if result != testcase .expectedValue {
411+ t .Errorf ("isInitialTag() = %v, want %v" , result , testcase .expectedValue )
412+ }
413+ })
414+ }
415+ }
0 commit comments