]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
resources/page: Make sure a map is always initialized
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 19 Jun 2025 17:52:08 +0000 (19:52 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 21 Jun 2025 12:38:06 +0000 (14:38 +0200)
Fixes #13810

resources/page/page_matcher.go
resources/page/page_matcher_test.go

index 306c2d03c567e3e37ca0a748825f79f2f570fa89..858def5efc21e6a604c7797b0fbe6992774e8aef 100644 (file)
@@ -174,6 +174,9 @@ func DecodeCascade(logger loggers.Logger, handleLegacyFormat bool, in any) (*map
 
 func mapToPageMatcherParamsConfig(m map[string]any) (PageMatcherParamsConfig, error) {
        var pcfg PageMatcherParamsConfig
+       if pcfg.Fields == nil {
+               pcfg.Fields = make(maps.Params)
+       }
        for k, v := range m {
                switch strings.ToLower(k) {
                case "_target", "target":
@@ -193,9 +196,6 @@ func mapToPageMatcherParamsConfig(m map[string]any) (PageMatcherParamsConfig, er
                                }
                        }
                default:
-                       if pcfg.Fields == nil {
-                               pcfg.Fields = make(maps.Params)
-                       }
 
                        pcfg.Fields[k] = v
                }
index ad35da43c15d07190598eb2c032822084d6a69ee..7f441d3ab73920fa44f06c3c0985c7dc0cb22030 100644 (file)
@@ -99,6 +99,7 @@ func TestPageMatcher(t *testing.T) {
                        Params: maps.Params{
                                "foo": "bar",
                        },
+                       Fields: maps.Params{},
                        Target: PageMatcher{Path: "", Kind: "page", Lang: "", Environment: ""},
                })
        })
@@ -136,9 +137,10 @@ func TestDecodeCascadeConfig(t *testing.T) {
        c.Assert(got.SourceStructure, qt.DeepEquals, []PageMatcherParamsConfig{
                {
                        Params: maps.Params{"a": string("av")},
+                       Fields: maps.Params{},
                        Target: PageMatcher{Kind: "page", Environment: "production"},
                },
-               {Params: maps.Params{"b": string("bv")}, Target: PageMatcher{Kind: "page"}},
+               {Params: maps.Params{"b": string("bv")}, Fields: maps.Params{}, Target: PageMatcher{Kind: "page"}},
        })
 
        got, err = DecodeCascadeConfig(loggers.NewDefault(), true, nil)