var _ = Describe("LogRequest", func() { var handler *testHandler var ctx *goa.Context params := url.Values{"param": []string{"value"}} payload := map[string]interface{}{"payload": 42} BeforeEach(func() { req, err := http.NewRequest("POST", "/goo", strings.NewReader(`{"payload":42}`)) Ω(err).ShouldNot(HaveOccurred()) rw := new(TestResponseWriter) ctx = goa.NewContext(nil, req, rw, params, payload) handler = new(testHandler) logger := log15.New("test", "test") logger.SetHandler(handler) ctx.Logger = logger }) It("logs requests", func() { h := func(ctx *goa.Context) error { ctx.JSON(200, "ok") return nil } lg := goa.LogRequest()(h) Ω(lg(ctx)).ShouldNot(HaveOccurred()) Ω(handler.Records).Should(HaveLen(4)) Ω(handler.Records[0].Ctx).Should(HaveLen(6)) Ω(handler.Records[0].Ctx[4]).Should(Equal("POST")) Ω(handler.Records[0].Ctx[5]).Should(Equal("/goo"))