salix/test_utils.go

49 lines
792 B
Go
Raw Permalink Normal View History

2024-02-12 03:04:07 +00:00
package salix
import (
"strings"
"testing"
"go.elara.ws/salix/ast"
)
func testTmpl(t *testing.T) Template {
t.Helper()
return Template{
ns: &Namespace{
tmpls: map[string]Template{},
tags: map[string]Tag{},
vars: map[string]any{},
},
name: t.Name(),
tags: map[string]Tag{},
vars: map[string]any{},
macros: map[string][]ast.Node{},
}
}
func testPos(t *testing.T) ast.Position {
t.Helper()
return ast.Position{
Name: t.Name(),
Line: -1,
Col: -1,
}
}
func execStr(t *testing.T, tmplStr string, vars map[string]any) string {
t.Helper()
tmpl, err := New().ParseString("test", tmplStr)
if err != nil {
t.Fatal(err)
}
sb := &strings.Builder{}
err = tmpl.WithVarMap(vars).Execute(sb)
if err != nil {
t.Fatal(err)
}
return sb.String()
}