@@ -18,11 +18,11 @@ package compatibility
1818
1919import (
2020 "fmt"
21+ "reflect"
2122 "strings"
2223 "testing"
2324
2425 "github.com/spf13/pflag"
25-
2626 utilruntime "k8s.io/apimachinery/pkg/util/runtime"
2727 "k8s.io/apimachinery/pkg/util/version"
2828 "k8s.io/component-base/featuregate"
@@ -476,3 +476,45 @@ func assertVersionEqualTo(t *testing.T, ver *version.Version, expectedVer string
476476 }
477477 t .Errorf ("expected: %s, got %s" , expectedVer , ver .String ())
478478}
479+
480+ func Test_enabledAlphaFeatures (t * testing.T ) {
481+ features := map [featuregate.Feature ]featuregate.FeatureSpec {
482+ "myFeat" : {
483+ PreRelease : featuregate .Alpha ,
484+ },
485+ "myOtherFeat" : {
486+ PreRelease : featuregate .Beta ,
487+ },
488+ "otherFeatDisabled" : {
489+ PreRelease : featuregate .Alpha ,
490+ },
491+ }
492+
493+ alphaGate := featuregate .NewFeatureGate ()
494+ if err := alphaGate .Add (features ); err != nil {
495+ t .Fatalf ("Unable to add features, %s" , err )
496+ }
497+
498+ err := alphaGate .SetFromMap (
499+ map [string ]bool {
500+ "myFeat" : true ,
501+ "myOtherFeat" : true ,
502+ "otherFeatDisabled" : false ,
503+ },
504+ )
505+ if err != nil {
506+ t .Fatalf ("Unable to set feature gate, %s" , err )
507+ }
508+
509+ globals := & ComponentGlobals {
510+ featureGate : alphaGate ,
511+ }
512+
513+ want := []string {
514+ "myFeat" ,
515+ }
516+
517+ if got := enabledAlphaFeatures (features , globals ); ! reflect .DeepEqual (got , want ) {
518+ t .Errorf ("enabledAlphaFeatures() = %v, want %v" , got , want )
519+ }
520+ }
0 commit comments