Expect(sender.GetCounter("RequestCount")).To(Equal(uint64(3))) }) }) Describe("LogWrap", func() { var ( logger *lagertest.TestLogger loggableHandlerFunc middleware.LoggableHandlerFunc ) BeforeEach(func() { logger = lagertest.NewTestLogger("test-session") logger.RegisterSink(lager.NewWriterSink(GinkgoWriter, lager.DEBUG)) loggableHandlerFunc = func(logger lager.Logger, w http.ResponseWriter, r *http.Request) { logger = logger.Session("logger-group") logger.Info("written-in-loggable-handler") } }) It("creates \"request\" session and passes it to LoggableHandlerFunc", func() { handler := middleware.LogWrap(logger, nil, loggableHandlerFunc) req, err := http.NewRequest("GET", "http://example.com", nil) Expect(err).NotTo(HaveOccurred()) handler.ServeHTTP(nil, req) Expect(logger.Buffer()).To(gbytes.Say("test-session.request.serving")) Expect(logger.Buffer()).To(gbytes.Say("\"session\":\"1\"")) Expect(logger.Buffer()).To(gbytes.Say("test-session.request.logger-group.written-in-loggable-handler")) Expect(logger.Buffer()).To(gbytes.Say("\"session\":\"1.1\"")) Expect(logger.Buffer()).To(gbytes.Say("test-session.request.done")) Expect(logger.Buffer()).To(gbytes.Say("\"session\":\"1\""))