func Test_WillieSessions(t *testing.T) { r := require.New(t) w := willie.New(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) { defer context.Clear(req) sess, _ := Store.Get(req, "my-session") t := sess.Values["foo"] fmt.Printf("t: %s\n", t) if t != nil { res.WriteHeader(200) fmt.Fprint(res, t) } else { sess.Values["foo"] = "bar" sess.Save(req, res) res.WriteHeader(201) fmt.Fprint(res, "setting session") } })) res := w.Get("/", nil) r.Equal(201, res.Code) r.Equal("setting session", res.Body.String()) res = w.Get("/", nil) r.Equal(200, res.Code) r.Equal("bar", res.Body.String()) }
func Test_Willie(t *testing.T) { a := require.New(t) w := willie.New(app()) m := map[string]methodHandler{ "get": w.JSONGet, "post": w.JSONPost, "put": w.JSONPut, "delete": w.JSONDelete, } for k, h := range m { res := h("/"+k, []string{"a", "b"}) r := &record{} res.Bind(r) a.Equal(strings.ToUpper(k), r.Method) a.Equal(`["a","b"]`, string(r.Body)) } }