Add a nested data dir test
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 12 Jun 2020 07:14:20 +0000 (09:14 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Fri, 12 Jun 2020 07:14:20 +0000 (09:14 +0200)
Ref. a discussion.

hugolib/datafiles_test.go

index 699cf9cd8f3e07bb26d795e59dbc7b33457e46a0..294dc8379d0cc263911e6559f8d9ee596b8cff36 100644 (file)
@@ -289,6 +289,23 @@ func TestDataDirCollidingMapsAndArrays(t *testing.T) {
        doTestDataDir(t, dd, expected, "theme", "mytheme")
 }
 
+// https://discourse.gohugo.io/t/recursive-data-file-parsing/26192
+func TestDataDirNestedDirectories(t *testing.T) {
+       t.Parallel()
+
+       var dd dataDir
+       dd.addSource("themes/mytheme/data/a.json", `["1", "2", "3"]`)
+       dd.addSource("data/test1/20/06/a.json", `{ "artist" : "Michael Brecker" }`)
+       dd.addSource("data/test1/20/05/b.json", `{ "artist" : "Charlie Parker" }`)
+
+       expected :=
+               map[string]interface{}{
+                       "a":     []interface{}{"1", "2", "3"},
+                       "test1": map[string]interface{}{"20": map[string]interface{}{"05": map[string]interface{}{"b": map[string]interface{}{"artist": "Charlie Parker"}}, "06": map[string]interface{}{"a": map[string]interface{}{"artist": "Michael Brecker"}}}}}
+
+       doTestDataDir(t, dd, expected, "theme", "mytheme")
+}
+
 type dataDir struct {
        sources [][2]string
 }