From 1c2ee715b329232b003b1b2925c504c83fcfd8ca Mon Sep 17 00:00:00 2001 From: Joel Speed Date: Tue, 7 May 2019 13:32:54 +0100 Subject: [PATCH] Refactor session_store_test.go --- pkg/sessions/session_store_test.go | 116 +++++++++++------------------ 1 file changed, 43 insertions(+), 73 deletions(-) diff --git a/pkg/sessions/session_store_test.go b/pkg/sessions/session_store_test.go index 0006ac4..5bc6594 100644 --- a/pkg/sessions/session_store_test.go +++ b/pkg/sessions/session_store_test.go @@ -27,6 +27,7 @@ var _ = Describe("NewSessionStore", func() { var request *http.Request var response *httptest.ResponseRecorder var session *sessionsapi.SessionState + var ss sessionsapi.SessionStore CheckCookieOptions := func() { Context("the cookies returned", func() { @@ -72,9 +73,46 @@ var _ = Describe("NewSessionStore", func() { }) } - RunCookieTests := func() { - var ss sessionsapi.SessionStore + SessionStoreInterfaceTests := func() { + Context("when SaveSession is called", func() { + BeforeEach(func() { + err := ss.SaveSession(response, request, session) + Expect(err).ToNot(HaveOccurred()) + }) + It("sets a `set-cookie` header in the response", func() { + Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty()) + }) + + CheckCookieOptions() + }) + + Context("when ClearSession is called", func() { + BeforeEach(func() { + cookie := cookies.MakeCookie(request, + cookieOpts.CookieName, + "foo", + cookieOpts.CookiePath, + cookieOpts.CookieDomain, + cookieOpts.CookieHTTPOnly, + cookieOpts.CookieSecure, + cookieOpts.CookieExpire, + time.Now(), + ) + request.AddCookie(cookie) + err := ss.ClearSession(response, request) + Expect(err).ToNot(HaveOccurred()) + }) + + It("sets a `set-cookie` header in the response", func() { + Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty()) + }) + + CheckCookieOptions() + }) + } + + RunCookieTests := func() { Context("with default options", func() { BeforeEach(func() { var err error @@ -82,42 +120,7 @@ var _ = Describe("NewSessionStore", func() { Expect(err).ToNot(HaveOccurred()) }) - Context("when SaveSession is called", func() { - BeforeEach(func() { - err := ss.SaveSession(response, request, session) - Expect(err).ToNot(HaveOccurred()) - }) - - It("sets a `set-cookie` header in the response", func() { - Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty()) - }) - - CheckCookieOptions() - }) - - Context("when ClearSession is called", func() { - BeforeEach(func() { - cookie := cookies.MakeCookie(request, - cookieOpts.CookieName, - "foo", - cookieOpts.CookiePath, - cookieOpts.CookieDomain, - cookieOpts.CookieHTTPOnly, - cookieOpts.CookieSecure, - cookieOpts.CookieExpire, - time.Now(), - ) - request.AddCookie(cookie) - err := ss.ClearSession(response, request) - Expect(err).ToNot(HaveOccurred()) - }) - - It("sets a `set-cookie` header in the response", func() { - Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty()) - }) - - CheckCookieOptions() - }) + SessionStoreInterfaceTests() }) Context("with non-default options", func() { @@ -137,46 +140,13 @@ var _ = Describe("NewSessionStore", func() { Expect(err).ToNot(HaveOccurred()) }) - Context("when SaveSession is called", func() { - BeforeEach(func() { - err := ss.SaveSession(response, request, session) - Expect(err).ToNot(HaveOccurred()) - }) + SessionStoreInterfaceTests() - It("sets a `set-cookie` header in the response", func() { - Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty()) - }) - - CheckCookieOptions() - }) - - Context("when ClearSession is called", func() { - BeforeEach(func() { - cookie := cookies.MakeCookie(request, - cookieOpts.CookieName, - "foo", - cookieOpts.CookiePath, - cookieOpts.CookieDomain, - cookieOpts.CookieHTTPOnly, - cookieOpts.CookieSecure, - cookieOpts.CookieExpire, - time.Now(), - ) - request.AddCookie(cookie) - err := ss.ClearSession(response, request) - Expect(err).ToNot(HaveOccurred()) - }) - - It("sets a `set-cookie` header in the response", func() { - Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty()) - }) - - CheckCookieOptions() - }) }) } BeforeEach(func() { + ss = nil opts = &options.SessionOptions{} // Set default options in CookieOptions