-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathhelper_map_test.go
50 lines (40 loc) · 1.2 KB
/
helper_map_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package velvet_test
import (
"testing"
"github.com/gobuffalo/velvet"
"github.com/stretchr/testify/require"
)
func Test_HelperMap_Add(t *testing.T) {
r := require.New(t)
hm, err := velvet.NewHelperMap()
r.NoError(err)
err = hm.Add("foo", func(help velvet.HelperContext) (string, error) {
return "", nil
})
r.NoError(err)
r.NotNil(hm.Helpers()["foo"])
}
func Test_HelperMap_Add_Invalid_NoReturn(t *testing.T) {
r := require.New(t)
hm, err := velvet.NewHelperMap()
r.NoError(err)
err = hm.Add("foo", func(help velvet.HelperContext) {})
r.Error(err)
r.Contains(err.Error(), "must return at least one")
r.Nil(hm.Helpers()["foo"])
}
func Test_HelperMap_Add_Invalid_ReturnTypes(t *testing.T) {
r := require.New(t)
hm, err := velvet.NewHelperMap()
r.NoError(err)
err = hm.Add("foo", func(help velvet.HelperContext) (string, string) {
return "", ""
})
r.Error(err)
r.Contains(err.Error(), "foo must return ([string|template.HTML], [error]), not (string, string)")
r.Nil(hm.Helpers()["foo"])
err = hm.Add("foo", func(help velvet.HelperContext) int { return 1 })
r.Error(err)
r.Contains(err.Error(), "foo must return ([string|template.HTML], [error]), not (int)")
r.Nil(hm.Helpers()["foo"])
}