Skip to content

Commit

Permalink
apiextension: fixup defaulting tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sttts committed Aug 26, 2019
1 parent 78f3ab2 commit 927a93d
Showing 1 changed file with 33 additions and 18 deletions.
Expand Up @@ -78,11 +78,12 @@ func TestValidateCustomResourceDefinition(t *testing.T) {
},
}
tests := []struct {
name string
resource *apiextensions.CustomResourceDefinition
requestGV schema.GroupVersion
errors []validationMatch
enabledFeatures []featuregate.Feature
name string
resource *apiextensions.CustomResourceDefinition
requestGV schema.GroupVersion
errors []validationMatch
enabledFeatures []featuregate.Feature
disabledFeatures []featuregate.Feature
}{
{
name: "invalid types allowed via v1beta1",
Expand Down Expand Up @@ -1599,7 +1600,8 @@ func TestValidateCustomResourceDefinition(t *testing.T) {
StoredVersions: []string{"version"},
},
},
requestGV: apiextensionsv1beta1.SchemeGroupVersion,
requestGV: apiextensionsv1beta1.SchemeGroupVersion,
disabledFeatures: []featuregate.Feature{features.CustomResourceDefaulting},
errors: []validationMatch{
forbidden("spec", "validation", "openAPIV3Schema", "properties[a]", "default"), // disabled feature-gate
},
Expand Down Expand Up @@ -4086,6 +4088,10 @@ func TestValidateCustomResourceDefinition(t *testing.T) {
for _, gate := range tc.enabledFeatures {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, gate, true)()
}
for _, gate := range tc.disabledFeatures {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, gate, false)()
}

// duplicate defaulting behaviour
if tc.resource.Spec.Conversion != nil && tc.resource.Spec.Conversion.Strategy == apiextensions.WebhookConverter && len(tc.resource.Spec.Conversion.ConversionReviewVersions) == 0 {
tc.resource.Spec.Conversion.ConversionReviewVersions = []string{"v1beta1"}
Expand Down Expand Up @@ -4119,12 +4125,13 @@ func TestValidateCustomResourceDefinition(t *testing.T) {

func TestValidateCustomResourceDefinitionUpdate(t *testing.T) {
tests := []struct {
name string
old *apiextensions.CustomResourceDefinition
resource *apiextensions.CustomResourceDefinition
requestGV schema.GroupVersion
errors []validationMatch
enabledFeatures []featuregate.Feature
name string
old *apiextensions.CustomResourceDefinition
resource *apiextensions.CustomResourceDefinition
requestGV schema.GroupVersion
errors []validationMatch
enabledFeatures []featuregate.Feature
disabledFeatures []featuregate.Feature
}{
{
name: "invalid type updates allowed via v1beta1",
Expand Down Expand Up @@ -5903,8 +5910,9 @@ func TestValidateCustomResourceDefinitionUpdate(t *testing.T) {
StoredVersions: []string{"version"},
},
},
requestGV: apiextensionsv1beta1.SchemeGroupVersion,
errors: []validationMatch{},
requestGV: apiextensionsv1beta1.SchemeGroupVersion,
errors: []validationMatch{},
disabledFeatures: []featuregate.Feature{features.CustomResourceDefaulting},
},
{
name: "ratcheting validation of defaults with disabled feature gate via v1",
Expand Down Expand Up @@ -5990,8 +5998,9 @@ func TestValidateCustomResourceDefinitionUpdate(t *testing.T) {
StoredVersions: []string{"version"},
},
},
requestGV: apiextensionsv1.SchemeGroupVersion,
errors: []validationMatch{},
requestGV: apiextensionsv1.SchemeGroupVersion,
errors: []validationMatch{},
disabledFeatures: []featuregate.Feature{features.CustomResourceDefaulting},
},
{
name: "ratcheting validation of defaults with disabled feature gate via v1, non-structural, no defaults before",
Expand Down Expand Up @@ -6074,6 +6083,7 @@ func TestValidateCustomResourceDefinitionUpdate(t *testing.T) {
errors: []validationMatch{
forbidden("spec", "validation", "openAPIV3Schema", "properties[a]", "default"),
},
disabledFeatures: []featuregate.Feature{features.CustomResourceDefaulting},
},
{
name: "ratcheting validation of defaults with disabled feature gate via v1, unpruned => unpruned",
Expand Down Expand Up @@ -6174,8 +6184,9 @@ func TestValidateCustomResourceDefinitionUpdate(t *testing.T) {
StoredVersions: []string{"version"},
},
},
requestGV: apiextensionsv1.SchemeGroupVersion,
errors: []validationMatch{},
requestGV: apiextensionsv1.SchemeGroupVersion,
errors: []validationMatch{},
disabledFeatures: []featuregate.Feature{features.CustomResourceDefaulting},
},
{
name: "ratcheting validation of defaults with disabled feature gate via v1, pruned => unpruned",
Expand Down Expand Up @@ -6280,6 +6291,7 @@ func TestValidateCustomResourceDefinitionUpdate(t *testing.T) {
errors: []validationMatch{
invalid("spec", "validation", "openAPIV3Schema", "properties[b]", "default"),
},
disabledFeatures: []featuregate.Feature{features.CustomResourceDefaulting},
},
{
name: "add default with enabled feature gate, structural schema, without pruning",
Expand Down Expand Up @@ -6355,6 +6367,9 @@ func TestValidateCustomResourceDefinitionUpdate(t *testing.T) {
for _, gate := range tc.enabledFeatures {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, gate, true)()
}
for _, gate := range tc.disabledFeatures {
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, gate, false)()
}

errs := ValidateCustomResourceDefinitionUpdate(tc.resource, tc.old, tc.requestGV)
seenErrs := make([]bool, len(errs))
Expand Down

0 comments on commit 927a93d

Please sign in to comment.