diff --git a/helper/schema/field_reader_diff.go b/helper/schema/field_reader_diff.go index c9da00e911..1678089fef 100644 --- a/helper/schema/field_reader_diff.go +++ b/helper/schema/field_reader_diff.go @@ -112,7 +112,9 @@ func (r *DiffFieldReader) readMap( if !strings.HasPrefix(k, prefix) { continue } - if strings.HasPrefix(k, prefix+"%") { + + key := k[len(prefix):] + if key == "%" { // Ignore the count field continue } diff --git a/helper/schema/field_reader_diff_test.go b/helper/schema/field_reader_diff_test.go index 55bee1b450..0f1582da6c 100644 --- a/helper/schema/field_reader_diff_test.go +++ b/helper/schema/field_reader_diff_test.go @@ -131,6 +131,10 @@ func TestDiffFieldReader_MapHandling(t *testing.T) { Old: "", New: "qux", }, + "tags.%baz": { + Old: "", + New: "%qux", + }, }, }, Source: &MapFieldReader{ @@ -148,8 +152,9 @@ func TestDiffFieldReader_MapHandling(t *testing.T) { } expected := map[string]interface{}{ - "foo": "bar", - "baz": "qux", + "foo": "bar", + "baz": "qux", + "%baz": "%qux", } if !reflect.DeepEqual(expected, result.Value) {