tpl: Fix reflection bug in merge

Value.Type().Key() must only be called on map values.

Fixes #7899
This commit is contained in:
Cameron Moore
2020-10-28 21:44:38 -05:00
committed by Bjørn Erik Pedersen
parent 56a343507c
commit 6d95dc9d74
2 changed files with 13 additions and 0 deletions

View File

@@ -111,6 +111,15 @@ func TestMerge(t *testing.T) {
},
maps.Params{"a": 1, "b": maps.Params{"d": 1, "e": 2, "f": 3}, "c": 3}, false,
},
{
// https://github.com/gohugoio/hugo/issues/7899
"matching keys with non-map src value",
[]interface{}{
map[string]interface{}{"k": "v"},
map[string]interface{}{"k": map[string]interface{}{"k2": "v2"}},
},
map[string]interface{}{"k": map[string]interface{}{"k2": "v2"}}, false,
},
{"src nil", []interface{}{nil, simpleMap}, simpleMap, false},
// Error cases.
{"dst not a map", []interface{}{nil, "not a map"}, nil, true},