fix template test renderer, add category

This commit is contained in:
41666 2025-04-06 22:27:42 -07:00
parent d9146750ba
commit e4317ec4fd
15 changed files with 171 additions and 103 deletions

View file

@ -3,64 +3,20 @@ package templatetesting
import (
"bytes"
"html/template"
"io/fs"
"strings"
"testing"
"git.sapphic.engineer/roleypoly/v4/templates"
"git.sapphic.engineer/roleypoly/v4/roleypoly"
"github.com/stretchr/testify/assert"
)
var (
funcMap = template.FuncMap{
"embed": func() string {
return "%%EMBED%%"
},
}
Templates *template.Template = template.New("index").Funcs(funcMap)
viewEngine = roleypoly.CreateViewEngine()
)
func init() {
fs.WalkDir(templates.FS, ".", func(path string, d fs.DirEntry, err error) error {
if err != nil {
return err
}
if d.IsDir() {
return nil
}
fiberName := strings.Replace(path, ".html", "", 1)
f, err := templates.FS.ReadFile(path)
if err != nil {
return err
}
if fiberName == "index" {
Templates, err = Templates.Parse(string(f))
} else {
_, err = Templates.New(fiberName).Parse(string(f))
}
return err
},
)
}
func Template(t *testing.T, name string, data interface{}) string {
func Template(t *testing.T, name string, data interface{}, layout ...string) string {
buf := bytes.Buffer{}
err := Templates.ExecuteTemplate(&buf, name, data)
if err != nil {
debugTemplates(t)
t.Fatal("failed to render: ", err)
}
err := viewEngine.Render(&buf, name, data, layout...)
assert.NoError(t, err)
return buf.String()
}
func debugTemplates(t *testing.T) {
for i, tmpl := range Templates.Templates() {
t.Logf("template %d: name=%s", i, tmpl.Name())
}
}

View file

@ -1,16 +0,0 @@
package templatetesting_test
import (
"testing"
"git.sapphic.engineer/roleypoly/v4/templates/templatetesting"
"github.com/stretchr/testify/assert"
)
func TestRender(t *testing.T) {
for _, template := range templatetesting.Templates.Templates() {
assert.NotPanicsf(t, func() {
templatetesting.Template(t, template.Name(), nil)
}, "rendering %s", template.Name())
}
}