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