package liquid import ( "fmt" "log" "testing" "github.com/stretchr/testify/require" ) var liquidTests = []struct{ in, expected string }{ {"{{page.title}}", "Introduction"}, {"{%if x%}true{%endif%}", "true"}, } var liquidTestScope = map[string]interface{}{ "x": 123, "ar": []string{"first", "second", "third"}, "page": map[string]interface{}{ "title": "Introduction", }, } func TestChunkParser(t *testing.T) { engine := NewEngine() for i, test := range liquidTests { t.Run(fmt.Sprint(i), func(t *testing.T) { out, err := engine.ParseAndRenderString(test.in, liquidTestScope) require.NoErrorf(t, err, test.in) require.Equalf(t, test.expected, out, test.in) }) } } func Example() { engine := NewEngine() template := `

{{page.title}}

` scope := map[string]interface{}{ "page": map[string]interface{}{ "title": "Introduction", }, } out, err := engine.ParseAndRenderString(template, scope) if err != nil { log.Fatalln(err) } fmt.Println(out) // Output:

Introduction

}