github.com/lenfree/buffalo@v0.7.3-0.20170207163156-891616ea4064/flash_test.go (about) 1 package buffalo 2 3 import ( 4 "testing" 5 6 "github.com/gobuffalo/buffalo/render" 7 "github.com/markbates/willie" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func Test_FlashAdd(t *testing.T) { 12 r := require.New(t) 13 f := newFlash(&Session{}) 14 15 r.Equal(f.data, map[string][]string{}) 16 17 f.Add("error", "something") 18 r.Equal(f.data, map[string][]string{ 19 "error": []string{"something"}, 20 }) 21 22 f.Add("error", "other") 23 r.Equal(f.data, map[string][]string{ 24 "error": []string{"something", "other"}, 25 }) 26 } 27 28 func Test_FlashRender(t *testing.T) { 29 r := require.New(t) 30 a := Automatic(Options{}) 31 rr := render.New(render.Options{}) 32 33 a.GET("/", func(c Context) error { 34 c.Flash().Add("errors", "Error AJ set") 35 c.Flash().Add("errors", "Error DAL set") 36 37 return c.Render(201, rr.String(errorsTPL)) 38 }) 39 40 w := willie.New(a) 41 res := w.Request("/").Get() 42 43 r.Contains(res.Body.String(), "Error AJ set") 44 r.Contains(res.Body.String(), "Error DAL set") 45 } 46 47 func Test_FlashRenderEmpty(t *testing.T) { 48 r := require.New(t) 49 a := Automatic(Options{}) 50 rr := render.New(render.Options{}) 51 52 a.GET("/", func(c Context) error { 53 return c.Render(201, rr.String(errorsTPL)) 54 }) 55 56 w := willie.New(a) 57 58 res := w.Request("/").Get() 59 r.NotContains(res.Body.String(), "Flash:") 60 } 61 62 const errorsTPL = `{{#each flash.errors as |k value|}} 63 Flash: 64 {{k}}:{{value}} 65 {{/each}}` 66 67 func Test_FlashRenderEntireFlash(t *testing.T) { 68 r := require.New(t) 69 a := Automatic(Options{}) 70 rr := render.New(render.Options{}) 71 72 a.GET("/", func(c Context) error { 73 c.Flash().Add("something", "something to say!") 74 return c.Render(201, rr.String(keyTPL)) 75 }) 76 77 w := willie.New(a) 78 res := w.Request("/").Get() 79 r.Contains(res.Body.String(), "something to say!") 80 } 81 82 const keyTPL = `{{#each flash as |k value|}} 83 Flash: 84 {{k}}:{{value}} 85 {{/each}}` 86 87 func Test_FlashRenderCustomKey(t *testing.T) { 88 r := require.New(t) 89 a := Automatic(Options{}) 90 rr := render.New(render.Options{}) 91 92 a.GET("/", func(c Context) error { 93 c.Flash().Add("something", "something to say!") 94 return c.Render(201, rr.String(keyTPL)) 95 }) 96 97 w := willie.New(a) 98 res := w.Request("/").Get() 99 r.Contains(res.Body.String(), "something to say!") 100 } 101 102 func Test_FlashRenderCustomKeyNotDefined(t *testing.T) { 103 r := require.New(t) 104 a := Automatic(Options{}) 105 rr := render.New(render.Options{}) 106 107 a.GET("/", func(c Context) error { 108 return c.Render(201, rr.String(customKeyTPL)) 109 }) 110 111 w := willie.New(a) 112 res := w.Request("/").Get() 113 r.NotContains(res.Body.String(), "something to say!") 114 } 115 116 const customKeyTPL = ` 117 {{#each flash.other as |k value|}} 118 {{value}} 119 {{/each}}`