Skip to content

Commit 23ca88b

Browse files
committed
Initial test for rendering PersonView(Person...)
1 parent 90edfc0 commit 23ca88b

3 files changed

Lines changed: 53 additions & 0 deletions

File tree

go.mod

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
module github.com/stanistan/veun
22

33
go 1.21.4
4+
5+
require (
6+
github.com/alecthomas/assert/v2 v2.4.0 // indirect
7+
github.com/alecthomas/repr v0.3.0 // indirect
8+
github.com/hexops/gotextdiff v1.0.3 // indirect
9+
)

go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
github.com/alecthomas/assert/v2 v2.4.0 h1:/ZiZ0NnriAWPYYO+4eOjgzNELrFQLaHNr92mHSHFj9U=
2+
github.com/alecthomas/assert/v2 v2.4.0/go.mod h1:fw5suVxB+wfYJ3291t0hRTqtGzFYdSwstnRQdaQx2DM=
3+
github.com/alecthomas/repr v0.3.0 h1:NeYzUPfjjlqHY4KtzgKJiWd6sVq2eNUPTi34PiFGjY8=
4+
github.com/alecthomas/repr v0.3.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
5+
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
6+
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=

render_person_test.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package veun_test
2+
3+
import (
4+
"html/template"
5+
"testing"
6+
7+
"github.com/alecthomas/assert/v2"
8+
"github.com/stanistan/veun"
9+
)
10+
11+
type Person struct {
12+
Name string
13+
}
14+
15+
type personView struct {
16+
Person Person
17+
}
18+
19+
func PersonView(person Person) *personView {
20+
return &personView{Person: person}
21+
}
22+
23+
var _ veun.Renderable = &personView{}
24+
25+
var personViewTpl = template.Must(
26+
template.New("PersonView").Parse(`<div>Hi, {{ .Name }}.</div>`),
27+
)
28+
29+
func (v *personView) Template() (*template.Template, error) {
30+
return personViewTpl, nil
31+
}
32+
33+
func (v *personView) TemplateData() (any, error) {
34+
return v.Person, nil
35+
}
36+
37+
func TestRenderPerson(t *testing.T) {
38+
html, err := veun.Render(PersonView(Person{Name: "Stan"}))
39+
assert.NoError(t, err)
40+
assert.Equal(t, html, template.HTML(`<div>Hi, Stan.</div>`))
41+
}

0 commit comments

Comments
 (0)