Test validation flag
This commit is contained in:
parent
26648b3321
commit
ce16d6d434
2 changed files with 20 additions and 12 deletions
|
@ -38,16 +38,18 @@ func TestParse(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
annotations map[string]string
|
annotations map[string]string
|
||||||
expected []string
|
expected []string
|
||||||
|
skipValidation bool
|
||||||
wantErr bool
|
wantErr bool
|
||||||
}{
|
}{
|
||||||
{map[string]string{annotation: "a.com, b.com, , c.com"}, []string{"a.com", "b.com", "c.com"}, false},
|
{map[string]string{annotation: "a.com, b.com, , c.com"}, []string{"a.com", "b.com", "c.com"}, false, false},
|
||||||
{map[string]string{annotation: "www.example.com"}, []string{"www.example.com"}, false},
|
{map[string]string{annotation: "www.example.com"}, []string{"www.example.com"}, false, false},
|
||||||
{map[string]string{annotation: "*.example.com,www.example.*"}, []string{"*.example.com", "www.example.*"}, false},
|
{map[string]string{annotation: "*.example.com,www.example.*"}, []string{"*.example.com", "www.example.*"}, false, false},
|
||||||
{map[string]string{annotation: `~^www\d+\.example\.com$`}, []string{`~^www\d+\.example\.com$`}, false},
|
{map[string]string{annotation: `~^www\d+\.example\.com$`}, []string{`~^www\d+\.example\.com$`}, false, false},
|
||||||
{map[string]string{annotation: `www.xpto;lala`}, []string{}, true},
|
{map[string]string{annotation: `www.xpto;lala`}, []string{}, false, true},
|
||||||
{map[string]string{annotation: ""}, []string{}, true},
|
{map[string]string{annotation: `www.xpto;lala`}, []string{"www.xpto;lala"}, true, false}, // When we skip validation no error should happen
|
||||||
{map[string]string{}, []string{}, true},
|
{map[string]string{annotation: ""}, []string{}, false, true},
|
||||||
{nil, []string{}, true},
|
{map[string]string{}, []string{}, false, true},
|
||||||
|
{nil, []string{}, false, true},
|
||||||
}
|
}
|
||||||
|
|
||||||
ing := &networking.Ingress{
|
ing := &networking.Ingress{
|
||||||
|
@ -60,6 +62,12 @@ func TestParse(t *testing.T) {
|
||||||
|
|
||||||
for _, testCase := range testCases {
|
for _, testCase := range testCases {
|
||||||
ing.SetAnnotations(testCase.annotations)
|
ing.SetAnnotations(testCase.annotations)
|
||||||
|
if testCase.skipValidation {
|
||||||
|
parser.DisableAnnotationValidation = true
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
parser.DisableAnnotationValidation = false
|
||||||
|
}()
|
||||||
result, err := ap.Parse(ing)
|
result, err := ap.Parse(ing)
|
||||||
if (err != nil) != testCase.wantErr {
|
if (err != nil) != testCase.wantErr {
|
||||||
t.Errorf("ParseAliasAnnotation() annotation: %s, error = %v, wantErr %v", testCase.annotations, err, testCase.wantErr)
|
t.Errorf("ParseAliasAnnotation() annotation: %s, error = %v, wantErr %v", testCase.annotations, err, testCase.wantErr)
|
||||||
|
|
|
@ -214,7 +214,7 @@ func checkAnnotation(name string, ing *networking.Ingress, fields AnnotationFiel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// We don't run validation against empty values
|
// We don't run validation against empty values
|
||||||
if annotationValue != "" && !DisableAnnotationValidation {
|
if !DisableAnnotationValidation && annotationValue != "" {
|
||||||
if err := validateFunc(annotationValue); err != nil {
|
if err := validateFunc(annotationValue); err != nil {
|
||||||
klog.Warningf("validation error on ingress %s/%s: annotation %s contains invalid value %s", ing.GetNamespace(), ing.GetName(), name, annotationValue)
|
klog.Warningf("validation error on ingress %s/%s: annotation %s contains invalid value %s", ing.GetNamespace(), ing.GetName(), name, annotationValue)
|
||||||
return "", ing_errors.NewValidationError(annotationFullName)
|
return "", ing_errors.NewValidationError(annotationFullName)
|
||||||
|
|
Loading…
Reference in a new issue