summaryrefslogtreecommitdiffstats
path: root/hugolib/datafiles_test.go
diff options
context:
space:
mode:
authorVas Sudanagunta <vas@commonkarma.org>2018-02-11 18:34:03 -0500
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-02-12 17:14:40 +0100
commitbb549a0d57505a6b8f28930bb91a9ab44cbb3288 (patch)
tree18123e5c2eddc4bb511c8395cb7f282f643c7c82 /hugolib/datafiles_test.go
parent82eefded1353f0198fd8fe9f7df1aa620d3d50eb (diff)
Account for array type data in data dir merge/override logic
* Fixes #4366 * Error message to console for unsupported data types
Diffstat (limited to 'hugolib/datafiles_test.go')
-rw-r--r--hugolib/datafiles_test.go27
1 files changed, 23 insertions, 4 deletions
diff --git a/hugolib/datafiles_test.go b/hugolib/datafiles_test.go
index a11929542..de124a77d 100644
--- a/hugolib/datafiles_test.go
+++ b/hugolib/datafiles_test.go
@@ -261,8 +261,7 @@ func TestDataDirMultipleSourcesCommingled(t *testing.T) {
doTestDataDir(t, dd, expected, "theme", "mytheme")
}
-// TODO Issue #4366 unresolved
-func _TestDataDirMultipleSourcesCollidingChildArrays(t *testing.T) {
+func TestDataDirCollidingChildArrays(t *testing.T) {
t.Parallel()
var dd dataDir
@@ -284,8 +283,7 @@ func _TestDataDirMultipleSourcesCollidingChildArrays(t *testing.T) {
doTestDataDir(t, dd, expected, "theme", "mytheme")
}
-// TODO Issue #4366 unresolved
-func _TestDataDirMultipleSourcesCollidingTopLevelArrays(t *testing.T) {
+func TestDataDirCollidingTopLevelArrays(t *testing.T) {
t.Parallel()
var dd dataDir
@@ -302,6 +300,27 @@ func _TestDataDirMultipleSourcesCollidingTopLevelArrays(t *testing.T) {
doTestDataDir(t, dd, expected, "theme", "mytheme")
}
+func TestDataDirCollidingMapsAndArrays(t *testing.T) {
+ t.Parallel()
+
+ var dd dataDir
+ // on
+ dd.addSource("themes/mytheme/data/a.json", `["1", "2", "3"]`)
+ dd.addSource("themes/mytheme/data/b.json", `{ "film" : "Logan Lucky" }`)
+ dd.addSource("data/a.json", `{ "music" : "Queen's Rebuke" }`)
+ dd.addSource("data/b.json", `["x", "y", "z"]`)
+
+ expected :=
+ map[string]interface{}{
+ "a": map[string]interface{}{
+ "music": "Queen's Rebuke",
+ },
+ "b": []interface{}{"x", "y", "z"},
+ }
+
+ doTestDataDir(t, dd, expected, "theme", "mytheme")
+}
+
type dataDir struct {
sources [][2]string
}