shithub: hugo

Download patch

ref: 61f6e9f63b0d2c8d7c3a2a88a3d2885c9a7d8165
parent: 904a3d9ddf523d452d04d0b5814503e0ff17bd2e
author: Bjørn Erik Pedersen <[email protected]>
date: Tue Mar 20 14:23:32 EDT 2018

tpl/transform: Add a comments test for Remarshal

See #4521

--- a/tpl/transform/remarshal_test.go
+++ b/tpl/transform/remarshal_test.go
@@ -108,6 +108,48 @@
 
 }
 
+func TestRemarshalComments(t *testing.T) {
+	t.Parallel()
+
+	ns := New(newDeps(viper.New()))
+	assert := require.New(t)
+
+	input := `
+Hugo = "Rules"
+		
+# It really does!
+
+[m]
+# A comment
+a = "b"
+
+`
+
+	expected := `
+Hugo = "Rules"
+		
+[m]
+  a = "b"
+`
+
+	for _, format := range []string{"json", "yaml", "toml"} {
+		fromTo := fmt.Sprintf("%s => %s", "toml", format)
+
+		converted := input
+		var err error
+		// Do a round-trip conversion
+		for _, toFormat := range []string{format, "toml"} {
+			converted, err = ns.Remarshal(toFormat, converted)
+			assert.NoError(err, fromTo)
+		}
+
+		diff := helpers.DiffStrings(expected, converted)
+		if len(diff) > 0 {
+			t.Fatalf("[%s] Expected \n%v\ngot\n%v\ndiff:\n%v\n", fromTo, expected, converted, diff)
+		}
+	}
+}
+
 func TestTestRemarshalError(t *testing.T) {
 	t.Parallel()