Fix language menu config regression

Fixes #8672
This commit is contained in:
Bjørn Erik Pedersen
2021-06-22 18:17:49 +02:00
parent 4a9d408fe0
commit 093dacab29
4 changed files with 135 additions and 20 deletions

View File

@@ -76,7 +76,7 @@ func TestLoadMultiConfig(t *testing.T) {
c.Assert(cfg.GetString("DontChange"), qt.Equals, "same")
}
func TestLoadConfigFromTheme(t *testing.T) {
func TestLoadConfigFromThemes(t *testing.T) {
t.Parallel()
c := qt.New(t)
@@ -185,11 +185,15 @@ name = "menu-theme"
`
buildForStrategy := func(t testing.TB, s string) *sitesBuilder {
mainConfig := strings.ReplaceAll(mainConfigTemplate, "MERGE_PARAMS", s)
buildForConfig := func(mainConfig, themeConfig string) *sitesBuilder {
b := newTestSitesBuilder(t)
b.WithConfigFile("toml", mainConfig).WithThemeConfigFile("toml", themeConfig)
return b.CreateSites().Build(BuildCfg{})
return b.Build(BuildCfg{})
}
buildForStrategy := func(t testing.TB, s string) *sitesBuilder {
mainConfig := strings.ReplaceAll(mainConfigTemplate, "MERGE_PARAMS", s)
return buildForConfig(mainConfig, themeConfig)
}
c.Run("Merge default", func(c *qt.C) {
@@ -316,6 +320,64 @@ name = "menu-theme"
})
})
c.Run("Merge no params in project", func(c *qt.C) {
b := buildForConfig(
"baseURL=\"https://example.org\"\ntheme = \"test-theme\"\n",
"[params]\np1 = \"p1 theme\"\n",
)
got := b.Cfg.Get("").(maps.Params)
b.Assert(got["params"], qt.DeepEquals, maps.Params{
"p1": "p1 theme",
})
})
c.Run("Merge language no menus or params in project", func(c *qt.C) {
b := buildForConfig(
`
theme = "test-theme"
baseURL = "https://example.com/"
[languages]
[languages.en]
languageName = "English"
`,
`
[languages]
[languages.en]
languageName = "EnglishTheme"
[languages.en.params]
p1="themep1"
[[languages.en.menus.main]]
name = "menu-theme"
`,
)
got := b.Cfg.Get("").(maps.Params)
b.Assert(got["languages"], qt.DeepEquals,
maps.Params{
"en": maps.Params{
"languagename": "English",
"menus": maps.Params{
"main": []map[string]interface{}{
{
"name": "menu-theme",
},
},
},
"params": maps.Params{
"p1": "themep1",
},
},
},
)
})
}
func TestLoadConfigFromThemeDir(t *testing.T) {