fakeResponseWriter = &fakes.FakeResponseWriter{} fakeHandler = &fakes.FakeHandler{} fakeLogger = &fakes.FakeLogger{} }) It("should not log credentials", func() { loggerMiddleware := middleware.NewLogger(fakeLogger) loggerHandler := loggerMiddleware.Wrap(fakeHandler) loggerHandler.ServeHTTP(fakeResponseWriter, dummyRequest) Expect(fakeLogger.DebugCallCount()).To(Equal(1)) _, arg1 := fakeLogger.DebugArgsForCall(0) loggedRequest := arg1[0]["request"].(middleware.LoggableHTTPRequest) Expect(loggedRequest.Header.Get("Authorization")).To(Equal("")) }) It("should call next handler", func() { loggerMiddleware := middleware.NewLogger(fakeLogger) loggerHandler := loggerMiddleware.Wrap(fakeHandler) loggerHandler.ServeHTTP(fakeResponseWriter, dummyRequest) Expect(fakeHandler.ServeHTTPCallCount()).To(Equal(1)) arg0, arg1 := fakeHandler.ServeHTTPArgsForCall(0) Expect(arg0).ToNot(BeNil()) Expect(arg1).To(Equal(dummyRequest)) }) })
enforcer := middleware.NewHTTPSEnforcer(httpsPort) wrappedMiddleware = enforcer.Wrap(fakeHandler) }) Context("when the URL is valid", func() { BeforeEach(func() { var err error request, err = http.NewRequest("GET", "http://localhost/foo/bar", nil) Expect(err).NotTo(HaveOccurred()) }) It("does not call next middleware", func() { wrappedMiddleware.ServeHTTP(writer, request) Expect(fakeHandler.ServeHTTPCallCount()).To(BeZero()) }) It("redirects to https", func() { wrappedMiddleware.ServeHTTP(writer, request) Expect(writer.Code).To(Equal(http.StatusFound)) expectedURL := fmt.Sprintf("https://localhost:%d/foo/bar", httpsPort) Expect(writer.HeaderMap.Get("Location")).To(Equal(expectedURL)) }) }) Context("when the URL is invalid", func() { BeforeEach(func() { var err error request, err = http.NewRequest("GET", "http://localhost/foo/bar", nil)