summaryrefslogtreecommitdiffstats
path: root/hugolib/cascade_test.go
diff options
context:
space:
mode:
authorGareth Watts <gareth@omnipotent.net>2020-10-22 12:14:14 -0500
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-10-22 23:00:19 +0200
commit3400aff2588cbf9dd4629c05537d16b019d0fdf5 (patch)
treee3714b454b2366f891cdfc746c5e9d9549d3a973 /hugolib/cascade_test.go
parentfdfa4a5fe62232f65f1dd8d6fe0c500374228788 (diff)
Allow cascade _target to work with non toml fm
The TOML lib unmarshals slices of string maps to []map[string]interface{} whereas YAML and JSON decode to []interface{} The existing tests only check for TOML working correctly, and _target with cascade did not work at all for frontmatter defined in other formats. Add a function to normalize those slices Fixes #7874
Diffstat (limited to 'hugolib/cascade_test.go')
-rw-r--r--hugolib/cascade_test.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/hugolib/cascade_test.go b/hugolib/cascade_test.go
index 336acdcf3..a112fe10c 100644
--- a/hugolib/cascade_test.go
+++ b/hugolib/cascade_test.go
@@ -459,4 +459,58 @@ S1|p1:|p2:p2|
})
+ c.Run("slice with yaml _target", func(c *qt.C) {
+ b := newBuilder(c)
+
+ b.WithContent("_index.md", `---
+title: "Home"
+cascade:
+- p1: p1
+ _target:
+ path: "**p1**"
+- p2: p2
+ _target:
+ kind: "section"
+---
+`)
+
+ b.Build(BuildCfg{})
+
+ b.AssertFileContent("public/index.html", `
+P1|p1:p1|p2:|
+S1|p1:|p2:p2|
+`)
+
+ })
+
+ c.Run("slice with json _target", func(c *qt.C) {
+ b := newBuilder(c)
+
+ b.WithContent("_index.md", `{
+"title": "Home",
+"cascade": [
+ {
+ "p1": "p1",
+ "_target": {
+ "path": "**p1**"
+ }
+ },{
+ "p2": "p2",
+ "_target": {
+ "kind": "section"
+ }
+ }
+]
+}
+`)
+
+ b.Build(BuildCfg{})
+
+ b.AssertFileContent("public/index.html", `
+ P1|p1:p1|p2:|
+ S1|p1:|p2:p2|
+ `)
+
+ })
+
}