}
}
- if err := l.applyConfigDefaults(); err != nil {
- return l.cfg, configFiles, err
- }
-
if d.AbsConfigDir != "" {
dcfg, dirnames, err := config.LoadConfigFromDir(l.Fs, d.AbsConfigDir, l.Environment)
if err == nil {
}
}
+ if err := l.applyConfigDefaults(); err != nil {
+ return l.cfg, configFiles, err
+ }
+
l.cfg.SetDefaultMergeStrategy()
// We create languages based on the settings, so we need to make sure that
"strings"
"testing"
+ "github.com/gohugoio/hugo/config"
+
"github.com/gohugoio/hugo/media"
"github.com/google/go-cmp/cmp"
)
func TestLoadConfig(t *testing.T) {
- t.Parallel()
c := qt.New(t)
- // Add a random config variable for testing.
- // side = page in Norwegian.
- configContent := `
- PaginatePath = "side"
- `
-
- mm := afero.NewMemMapFs()
-
- writeToFs(t, mm, "hugo.toml", configContent)
+ loadConfig := func(c *qt.C, configContent string, fromDir bool) config.Provider {
+ mm := afero.NewMemMapFs()
+ filename := "config.toml"
+ descriptor := ConfigSourceDescriptor{Fs: mm}
+ if fromDir {
+ filename = filepath.Join("config", "_default", filename)
+ descriptor.AbsConfigDir = "config"
+ }
+ writeToFs(t, mm, filename, configContent)
+ cfg, _, err := LoadConfig(descriptor)
+ c.Assert(err, qt.IsNil)
+ return cfg
+ }
- cfg, _, err := LoadConfig(ConfigSourceDescriptor{Fs: mm, Filename: "hugo.toml"})
- c.Assert(err, qt.IsNil)
+ c.Run("Basic", func(c *qt.C) {
+ c.Parallel()
+ // Add a random config variable for testing.
+ // side = page in Norwegian.
+ cfg := loadConfig(c, `PaginatePath = "side"`, false)
+ c.Assert(cfg.GetString("paginatePath"), qt.Equals, "side")
+ })
- c.Assert(cfg.GetString("paginatePath"), qt.Equals, "side")
+ // Issue #8763
+ for _, fromDir := range []bool{false, true} {
+ testName := "Taxonomy overrides"
+ if fromDir {
+ testName += " from dir"
+ }
+ c.Run(testName, func(c *qt.C) {
+ c.Parallel()
+ cfg := loadConfig(c, `[taxonomies]
+appellation = "appellations"
+vigneron = "vignerons"`, fromDir)
+
+ c.Assert(cfg.Get("taxonomies"), qt.DeepEquals, maps.Params{
+ "appellation": "appellations",
+ "vigneron": "vignerons",
+ })
+ })
+ }
}
func TestLoadMultiConfig(t *testing.T) {