github.com/bketelsen/buffalo@v0.9.5/render/markdown_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_Markdown(t *testing.T) { 17 r := require.New(t) 18 19 tmpDir := filepath.Join(os.TempDir(), "markdown_test") 20 err := os.MkdirAll(tmpDir, 0766) 21 r.NoError(err) 22 defer os.Remove(tmpDir) 23 24 tmpFile, err := os.Create(filepath.Join(tmpDir, "t.md")) 25 r.NoError(err) 26 27 _, err = tmpFile.Write([]byte("<%= name %>")) 28 r.NoError(err) 29 30 type ji func(...string) render.Renderer 31 t.Run("without a layout", func(st *testing.T) { 32 r := require.New(st) 33 34 table := []ji{ 35 render.New(render.Options{ 36 TemplateEngine: plush.BuffaloRenderer, 37 }).HTML, 38 } 39 40 for _, j := range table { 41 re := j(tmpFile.Name()) 42 r.Equal("text/html", re.ContentType()) 43 bb := &bytes.Buffer{} 44 err = re.Render(bb, map[string]interface{}{"name": "Mark"}) 45 r.NoError(err) 46 r.Equal("<p>Mark</p>", strings.TrimSpace(bb.String())) 47 } 48 }) 49 50 t.Run("with a layout", func(st *testing.T) { 51 r := require.New(st) 52 53 layout, err := ioutil.TempFile("", "test") 54 r.NoError(err) 55 defer os.Remove(layout.Name()) 56 57 _, err = layout.Write([]byte("<body><%= yield %></body>")) 58 r.NoError(err) 59 60 re := render.New(render.Options{ 61 HTMLLayout: layout.Name(), 62 TemplateEngine: plush.BuffaloRenderer, 63 }).HTML(tmpFile.Name()) 64 65 r.Equal("text/html", re.ContentType()) 66 bb := &bytes.Buffer{} 67 err = re.Render(bb, map[string]interface{}{"name": "Mark"}) 68 r.NoError(err) 69 r.Equal("<body><p>Mark</p>\n</body>", strings.TrimSpace(bb.String())) 70 }) 71 }