From ee0e014617f5907430db1f403d9fcc7c701b92c3 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 9 Apr 2019 16:50:06 +0200 Subject: [PATCH] Insensitive case for allow-empty value. --- pkg/provider/label/internal/nodes_metadata.go | 2 +- .../label/internal/nodes_metadata_test.go | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/pkg/provider/label/internal/nodes_metadata.go b/pkg/provider/label/internal/nodes_metadata.go index 31640c03a..5770c2ffd 100644 --- a/pkg/provider/label/internal/nodes_metadata.go +++ b/pkg/provider/label/internal/nodes_metadata.go @@ -52,7 +52,7 @@ func addMetadata(rootType reflect.Type, node *Node) error { return fmt.Errorf("node %s (type %s) must have children", node.Name, fType) } - node.Disabled = len(node.Value) > 0 && node.Value != "true" && field.Tag.Get(TagLabel) == "allowEmpty" + node.Disabled = len(node.Value) > 0 && !strings.EqualFold(node.Value, "true") && field.Tag.Get(TagLabel) == "allowEmpty" } if len(node.Children) == 0 { diff --git a/pkg/provider/label/internal/nodes_metadata_test.go b/pkg/provider/label/internal/nodes_metadata_test.go index 3e5b9e06e..d1b0f2ff5 100644 --- a/pkg/provider/label/internal/nodes_metadata_test.go +++ b/pkg/provider/label/internal/nodes_metadata_test.go @@ -451,6 +451,33 @@ func TestAddMetadata(t *testing.T) { }, }, }, + { + desc: "level 2, struct with allowEmpty, value true with case variation", + tree: &Node{ + Name: "traefik", + Children: []*Node{ + {Name: "Foo", Value: "TruE"}, + }, + }, + structure: struct { + Foo struct { + Bar string + } `label:"allowEmpty"` + }{ + Foo: struct { + Bar string + }{}, + }, + expected: expected{ + node: &Node{ + Name: "traefik", + Kind: reflect.Struct, + Children: []*Node{ + {Name: "Foo", FieldName: "Foo", Value: "TruE", Kind: reflect.Struct}, + }, + }, + }, + }, { desc: "level 2, struct with allowEmpty, value false", tree: &Node{