github.com/ashleymcnamara/buffalo@v0.8.0/render/template_test.go (about) 1 package render_test 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "os" 7 "path/filepath" 8 "strings" 9 "testing" 10 11 "github.com/gobuffalo/buffalo/render" 12 "github.com/gobuffalo/plush" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func Test_Template(t *testing.T) { 17 r := require.New(t) 18 19 tmpFile, err := ioutil.TempFile("", "test") 20 r.NoError(err) 21 defer os.Remove(tmpFile.Name()) 22 23 _, err = tmpFile.Write([]byte("<%= name %>")) 24 r.NoError(err) 25 26 type ji func(string, ...string) render.Renderer 27 28 table := []ji{ 29 render.New(render.Options{ 30 TemplateEngine: plush.BuffaloRenderer, 31 }).Template, 32 } 33 34 for _, j := range table { 35 re := j("foo/bar", tmpFile.Name()) 36 r.Equal("foo/bar", re.ContentType()) 37 bb := &bytes.Buffer{} 38 err = re.Render(bb, render.Data{"name": "Mark"}) 39 r.NoError(err) 40 r.Equal("Mark", strings.TrimSpace(bb.String())) 41 } 42 } 43 44 func Test_Template_Partial(t *testing.T) { 45 r := require.New(t) 46 47 tPath, err := ioutil.TempDir("", "") 48 r.NoError(err) 49 defer os.Remove(tPath) 50 51 partFile, err := os.Create(filepath.Join(tPath, "_foo.html")) 52 r.NoError(err) 53 54 _, err = partFile.Write([]byte("Foo -> <%= name %>")) 55 r.NoError(err) 56 57 tmpFile, err := os.Create(filepath.Join(tPath, "index.html")) 58 r.NoError(err) 59 60 _, err = tmpFile.Write([]byte(`<%= partial("foo.html") %>`)) 61 r.NoError(err) 62 63 type ji func(string, ...string) render.Renderer 64 65 table := []ji{ 66 render.New(render.Options{ 67 TemplatesPath: tPath, 68 TemplateEngine: plush.BuffaloRenderer, 69 }).Template, 70 } 71 72 for _, j := range table { 73 re := j("foo/bar", "index.html") 74 r.Equal("foo/bar", re.ContentType()) 75 bb := &bytes.Buffer{} 76 err = re.Render(bb, render.Data{"name": "Mark"}) 77 r.NoError(err) 78 r.Equal("Foo -> Mark", strings.TrimSpace(bb.String())) 79 } 80 }