From 093dacab29a3c6fc363408453d0bc3b1fc159ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 22 Jun 2021 18:17:49 +0200 Subject: Fix language menu config regression Fixes #8672 --- hugolib/config_test.go | 70 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 4 deletions(-) (limited to 'hugolib/config_test.go') 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) { -- cgit v1.2.3