@@ -17,7 +17,6 @@ limitations under the License.
17
17
package featuregate
18
18
19
19
import (
20
- "context"
21
20
"fmt"
22
21
"reflect"
23
22
"sort"
@@ -1331,14 +1330,14 @@ func TestVersionedFeatureGateOverrideDefault(t *testing.T) {
1331
1330
if ! f .Enabled ("TestFeature2" ) {
1332
1331
t .Error ("expected TestFeature2 to have effective default of true" )
1333
1332
}
1334
- require .NoError (t , f .SetEmulationVersionWithContext ( WithTestLoggerContext ( context . Background (), t ), version .MustParse ("1.29" )))
1333
+ require .NoError (t , f .SetEmulationVersion ( version .MustParse ("1.29" )))
1335
1334
if ! f .Enabled ("TestFeature1" ) {
1336
1335
t .Error ("expected TestFeature1 to have effective default of true" )
1337
1336
}
1338
1337
if f .Enabled ("TestFeature2" ) {
1339
1338
t .Error ("expected TestFeature2 to have effective default of false" )
1340
1339
}
1341
- require .NoError (t , f .SetEmulationVersionWithContext ( WithTestLoggerContext ( context . Background (), t ), version .MustParse ("1.26" )))
1340
+ require .NoError (t , f .SetEmulationVersion ( version .MustParse ("1.26" )))
1342
1341
if f .Enabled ("TestFeature1" ) {
1343
1342
t .Error ("expected TestFeature1 to have effective default of false" )
1344
1343
}
@@ -1384,11 +1383,11 @@ func TestVersionedFeatureGateOverrideDefault(t *testing.T) {
1384
1383
assert .True (t , f .Enabled ("TestFeature" ))
1385
1384
assert .False (t , fcopy .Enabled ("TestFeature" ))
1386
1385
1387
- require .NoError (t , f .SetEmulationVersionWithContext ( WithTestLoggerContext ( context . Background (), t ), version .MustParse ("1.29" )))
1386
+ require .NoError (t , f .SetEmulationVersion ( version .MustParse ("1.29" )))
1388
1387
assert .False (t , f .Enabled ("TestFeature" ))
1389
1388
assert .False (t , fcopy .Enabled ("TestFeature" ))
1390
1389
1391
- require .NoError (t , fcopy .SetEmulationVersionWithContext ( WithTestLoggerContext ( context . Background (), t ), version .MustParse ("1.29" )))
1390
+ require .NoError (t , fcopy .SetEmulationVersion ( version .MustParse ("1.29" )))
1392
1391
assert .False (t , f .Enabled ("TestFeature" ))
1393
1392
assert .True (t , fcopy .Enabled ("TestFeature" ))
1394
1393
})
@@ -1738,7 +1737,7 @@ func TestResetFeatureValueToDefault(t *testing.T) {
1738
1737
assert .True (t , f .Enabled ("TestAlpha" ))
1739
1738
assert .True (t , f .Enabled ("TestBeta" ))
1740
1739
1741
- require .NoError (t , f .SetEmulationVersionWithContext ( WithTestLoggerContext ( context . Background (), t ), version .MustParse ("1.28" )))
1740
+ require .NoError (t , f .SetEmulationVersion ( version .MustParse ("1.28" )))
1742
1741
assert .False (t , f .Enabled ("AllAlpha" ))
1743
1742
assert .False (t , f .Enabled ("AllBeta" ))
1744
1743
assert .False (t , f .Enabled ("TestAlpha" ))
@@ -1906,131 +1905,3 @@ func TestAddVersioned(t *testing.T) {
1906
1905
})
1907
1906
}
1908
1907
}
1909
-
1910
- // TestSetEmulationVersionWithContext tests various scenarios for SetEmulationVersionWithContext
1911
- func TestSetEmulationVersionWithContext (t * testing.T ) {
1912
- tests := []struct {
1913
- name string
1914
- features map [Feature ]VersionedSpecs
1915
- queriedFeatures []string
1916
- targetVersion * version.Version
1917
- context context.Context
1918
- expectError bool
1919
- errorContains []string
1920
- expectNoError bool
1921
- }{
1922
- {
1923
- name : "warning redirection with test logger" ,
1924
- features : map [Feature ]VersionedSpecs {
1925
- "TestFeature" : {
1926
- {Version : version .MustParse ("1.28" ), Default : false , PreRelease : Alpha },
1927
- {Version : version .MustParse ("1.29" ), Default : true , PreRelease : Beta },
1928
- },
1929
- },
1930
- queriedFeatures : []string {"TestFeature" },
1931
- targetVersion : version .MustParse ("1.28" ),
1932
- context : WithTestLoggerContext (context .Background (), t ),
1933
- expectNoError : true ,
1934
- },
1935
- {
1936
- name : "error on feature change without test logger" ,
1937
- features : map [Feature ]VersionedSpecs {
1938
- "TestFeature" : {
1939
- {Version : version .MustParse ("1.28" ), Default : false , PreRelease : Alpha },
1940
- {Version : version .MustParse ("1.29" ), Default : true , PreRelease : Beta },
1941
- },
1942
- },
1943
- queriedFeatures : []string {"TestFeature" },
1944
- targetVersion : version .MustParse ("1.28" ),
1945
- context : context .Background (),
1946
- expectError : true ,
1947
- errorContains : []string {"SetEmulationVersion would change already queried features" },
1948
- },
1949
- {
1950
- name : "multiple features changing" ,
1951
- features : map [Feature ]VersionedSpecs {
1952
- "TestFeature1" : {
1953
- {Version : version .MustParse ("1.28" ), Default : false , PreRelease : Alpha },
1954
- {Version : version .MustParse ("1.29" ), Default : true , PreRelease : Beta },
1955
- },
1956
- "TestFeature2" : {
1957
- {Version : version .MustParse ("1.28" ), Default : true , PreRelease : Alpha },
1958
- {Version : version .MustParse ("1.29" ), Default : false , PreRelease : Beta },
1959
- },
1960
- },
1961
- queriedFeatures : []string {"TestFeature1" , "TestFeature2" },
1962
- targetVersion : version .MustParse ("1.28" ),
1963
- context : context .Background (),
1964
- expectError : true ,
1965
- errorContains : []string {"TestFeature1" , "TestFeature2" },
1966
- },
1967
- {
1968
- name : "no change with regular context" ,
1969
- features : map [Feature ]VersionedSpecs {
1970
- "TestFeature" : {
1971
- {Version : version .MustParse ("1.28" ), Default : true , PreRelease : Alpha },
1972
- {Version : version .MustParse ("1.29" ), Default : true , PreRelease : Beta },
1973
- },
1974
- },
1975
- queriedFeatures : []string {"TestFeature" },
1976
- targetVersion : version .MustParse ("1.28" ),
1977
- context : context .Background (),
1978
- expectNoError : true ,
1979
- },
1980
- {
1981
- name : "no change with test logger context" ,
1982
- features : map [Feature ]VersionedSpecs {
1983
- "TestFeature" : {
1984
- {Version : version .MustParse ("1.28" ), Default : true , PreRelease : Alpha },
1985
- {Version : version .MustParse ("1.29" ), Default : true , PreRelease : Beta },
1986
- },
1987
- },
1988
- queriedFeatures : []string {"TestFeature" },
1989
- targetVersion : version .MustParse ("1.28" ),
1990
- context : WithTestLoggerContext (context .Background (), t ),
1991
- expectNoError : true ,
1992
- },
1993
- {
1994
- name : "nil context with feature change" ,
1995
- features : map [Feature ]VersionedSpecs {
1996
- "TestFeature" : {
1997
- {Version : version .MustParse ("1.28" ), Default : false , PreRelease : Alpha },
1998
- {Version : version .MustParse ("1.29" ), Default : true , PreRelease : Beta },
1999
- },
2000
- },
2001
- queriedFeatures : []string {"TestFeature" },
2002
- targetVersion : version .MustParse ("1.28" ),
2003
- context : nil ,
2004
- expectError : true ,
2005
- errorContains : []string {"SetEmulationVersion would change already queried features" },
2006
- },
2007
- }
2008
-
2009
- for _ , tt := range tests {
2010
- t .Run (tt .name , func (t * testing.T ) {
2011
- // Create feature gate
2012
- f := NewVersionedFeatureGate (version .MustParse ("1.29" ))
2013
-
2014
- // Add features
2015
- err := f .AddVersioned (tt .features )
2016
- require .NoError (t , err )
2017
-
2018
- // Query features to mark them as queried
2019
- for _ , featureName := range tt .queriedFeatures {
2020
- _ = f .Enabled (Feature (featureName ))
2021
- }
2022
-
2023
- // Test SetEmulationVersionWithContext
2024
- err = f .SetEmulationVersionWithContext (tt .context , tt .targetVersion )
2025
-
2026
- if tt .expectError {
2027
- require .Error (t , err )
2028
- for _ , expectedText := range tt .errorContains {
2029
- require .Contains (t , err .Error (), expectedText )
2030
- }
2031
- } else if tt .expectNoError {
2032
- require .NoError (t , err )
2033
- }
2034
- })
2035
- }
2036
- }
0 commit comments