package funcmap import ( "fmt" "testing" "github.com/labstack/echo/v4" "github.com/stretchr/testify/assert" "git.grosinger.net/tgrosinger/saasitone/config" ) func TestNewFuncMap(t *testing.T) { f := NewFuncMap(echo.New()) assert.NotNil(t, f["hasField"]) assert.NotNil(t, f["link"]) assert.NotNil(t, f["file"]) assert.NotNil(t, f["url"]) } func TestHasField(t *testing.T) { type example struct { name string } var e example f := new(funcMap) assert.True(t, f.hasField(e, "name")) assert.False(t, f.hasField(e, "abcd")) } func TestLink(t *testing.T) { f := new(funcMap) link := string(f.link("/abc", "Text", "/abc")) expected := `Text` assert.Equal(t, expected, link) link = string(f.link("/abc", "Text", "/abc", "first", "second")) expected = `Text` assert.Equal(t, expected, link) link = string(f.link("/abc", "Text", "/def")) expected = `Text` assert.Equal(t, expected, link) } func TestFile(t *testing.T) { f := new(funcMap) file := f.file("test.png") expected := fmt.Sprintf("/%s/test.png?v=%s", config.StaticPrefix, CacheBuster) assert.Equal(t, expected, file) } func TestUrl(t *testing.T) { f := new(funcMap) f.web = echo.New() f.web.GET("/mypath/:id", func(c echo.Context) error { return nil }).Name = "test" out := f.url("test", 5) assert.Equal(t, "/mypath/5", out) }