github.com/mayra-cabrera/buffalo@v0.9.4-0.20170814145312-66d2e7772f11/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/packr" 13 "github.com/gobuffalo/plush" 14 "github.com/stretchr/testify/require" 15 ) 16 17 func Test_Template(t *testing.T) { 18 r := require.New(t) 19 20 tmpFile, err := ioutil.TempFile("", "test") 21 r.NoError(err) 22 defer os.Remove(tmpFile.Name()) 23 24 _, err = tmpFile.Write([]byte("<%= name %>")) 25 r.NoError(err) 26 27 type ji func(string, ...string) render.Renderer 28 29 table := []ji{ 30 render.New(render.Options{ 31 TemplateEngine: plush.BuffaloRenderer, 32 }).Template, 33 } 34 35 for _, j := range table { 36 re := j("foo/bar", tmpFile.Name()) 37 r.Equal("foo/bar", re.ContentType()) 38 bb := &bytes.Buffer{} 39 err = re.Render(bb, render.Data{"name": "Mark"}) 40 r.NoError(err) 41 r.Equal("Mark", strings.TrimSpace(bb.String())) 42 } 43 } 44 45 func Test_Template_Partial(t *testing.T) { 46 r := require.New(t) 47 48 tPath, err := ioutil.TempDir("", "") 49 r.NoError(err) 50 defer os.Remove(tPath) 51 52 partFile, err := os.Create(filepath.Join(tPath, "_foo.html")) 53 r.NoError(err) 54 55 _, err = partFile.Write([]byte("Foo -> <%= name %>")) 56 r.NoError(err) 57 58 tmpFile, err := os.Create(filepath.Join(tPath, "index.html")) 59 r.NoError(err) 60 61 _, err = tmpFile.Write([]byte(`<%= partial("foo.html") %>`)) 62 r.NoError(err) 63 64 type ji func(string, ...string) render.Renderer 65 66 table := []ji{ 67 render.New(render.Options{ 68 TemplatesBox: packr.NewBox(tPath), 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 }