hugolib: Allow untyped nil to be merged in lang.Merge

Fixes #4977
This commit is contained in:
Bjørn Erik Pedersen 2018-07-21 11:41:23 +02:00
parent 166483fe12
commit ff16c42ed0
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 8 additions and 0 deletions

View file

@ -53,6 +53,9 @@ func (p1 Pages) MergeByLanguage(p2 Pages) Pages {
// MergeByLanguageInterface is the generic version of MergeByLanguage. It // MergeByLanguageInterface is the generic version of MergeByLanguage. It
// is here just so it can be called from the tpl package. // is here just so it can be called from the tpl package.
func (p1 Pages) MergeByLanguageInterface(in interface{}) (interface{}, error) { func (p1 Pages) MergeByLanguageInterface(in interface{}) (interface{}, error) {
if in == nil {
return p1, nil
}
p2, ok := in.(Pages) p2, ok := in.(Pages)
if !ok { if !ok {
return nil, fmt.Errorf("%T cannot be merged by language", in) return nil, fmt.Errorf("%T cannot be merged by language", in)

View file

@ -79,6 +79,11 @@ func TestMergeLanguages(t *testing.T) {
// This looks less ugly in the templates ... // This looks less ugly in the templates ...
mergedNNResources := ri.(resource.ResourcesLanguageMerger).MergeByLanguage(enBundle.Resources) mergedNNResources := ri.(resource.ResourcesLanguageMerger).MergeByLanguage(enBundle.Resources)
assert.Equal(6, len(mergedNNResources)) assert.Equal(6, len(mergedNNResources))
unchanged, err := nnSite.RegularPages.MergeByLanguageInterface(nil)
assert.NoError(err)
assert.Equal(nnSite.RegularPages, unchanged)
} }
func TestMergeLanguagesTemplate(t *testing.T) { func TestMergeLanguagesTemplate(t *testing.T) {