From e3e627e6b706a67abb3d7752b27326c07326b53d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Fri, 12 Jun 2020 09:14:20 +0200 Subject: [PATCH] Add a nested data dir test Ref. a discussion. --- hugolib/datafiles_test.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/hugolib/datafiles_test.go b/hugolib/datafiles_test.go index 699cf9cd8..294dc8379 100644 --- a/hugolib/datafiles_test.go +++ b/hugolib/datafiles_test.go @@ -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 }