summaryrefslogtreecommitdiffstats
path: root/hugolib/config_test.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-06-22 18:17:49 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-06-24 13:03:09 +0200
commit093dacab29a3c6fc363408453d0bc3b1fc159ad5 (patch)
treed0a36df930602483fe5bd6f325cb90c7a4efd71a /hugolib/config_test.go
parent4a9d408fe0bbf4c563546e35d2be7ade4e920c4c (diff)
Fix language menu config regression
Fixes #8672
Diffstat (limited to 'hugolib/config_test.go')
-rw-r--r--hugolib/config_test.go70
1 files changed, 66 insertions, 4 deletions
diff --git a/hugolib/config_test.go b/hugolib/config_test.go
index 65cb246b9..c5e77c946 100644
--- a/hugolib/config_test.go
+++ b/hugolib/config_test.go
@@ -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) {