git.iko.soy/typeable/oauth2-proxy
on master help sign in
Refactor session_store_test.go
1c2ee71Joel Speed
pkg/sessions/session_store_test.go+42−72
@@ -27,6 +27,7 @@ var _ = Describe("NewSessionStore", func() {
27 var request *http.Request
27 var request *http.Request
28 var response *httptest.ResponseRecorder
28 var response *httptest.ResponseRecorder
29 var session *sessionsapi.SessionState
29 var session *sessionsapi.SessionState
30+ var ss sessionsapi.SessionStore
30
31
31 CheckCookieOptions := func() {
32 CheckCookieOptions := func() {
32 Context("the cookies returned", func() {
33 Context("the cookies returned", func() {
@@ -72,52 +73,54 @@ var _ = Describe("NewSessionStore", func() {
72 })
73 })
73 }
74 }
74
75
75− RunCookieTests := func() {
76+ SessionStoreInterfaceTests := func() {
76− var ss sessionsapi.SessionStore
77+ Context("when SaveSession is called", func() {
77−
78− Context("with default options", func() {
79 BeforeEach(func() {
78 BeforeEach(func() {
80− var err error
79+ err := ss.SaveSession(response, request, session)
81− ss, err = sessions.NewSessionStore(opts, cookieOpts)
82 Expect(err).ToNot(HaveOccurred())
80 Expect(err).ToNot(HaveOccurred())
83 })
81 })
84
82
85− Context("when SaveSession is called", func() {
83+ It("sets a `set-cookie` header in the response", func() {
86− BeforeEach(func() {
84+ Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
87− err := ss.SaveSession(response, request, session)
88− Expect(err).ToNot(HaveOccurred())
89− })
85+ })
90
86
91− It("sets a `set-cookie` header in the response", func() {
87+ CheckCookieOptions()
92− Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
93− })
88+ })
94
89
95− CheckCookieOptions()
90+ Context("when ClearSession is called", func() {
91+ BeforeEach(func() {
92+ cookie := cookies.MakeCookie(request,
93+ cookieOpts.CookieName,
94+ "foo",
95+ cookieOpts.CookiePath,
96+ cookieOpts.CookieDomain,
97+ cookieOpts.CookieHTTPOnly,
98+ cookieOpts.CookieSecure,
99+ cookieOpts.CookieExpire,
100+ time.Now(),
101+ )
102+ request.AddCookie(cookie)
103+ err := ss.ClearSession(response, request)
104+ Expect(err).ToNot(HaveOccurred())
96 })
105 })
97
106
98− Context("when ClearSession is called", func() {
99− BeforeEach(func() {
100− cookie := cookies.MakeCookie(request,
101− cookieOpts.CookieName,
102− "foo",
103− cookieOpts.CookiePath,
104− cookieOpts.CookieDomain,
105− cookieOpts.CookieHTTPOnly,
106− cookieOpts.CookieSecure,
107− cookieOpts.CookieExpire,
108− time.Now(),
109− )
110− request.AddCookie(cookie)
111− err := ss.ClearSession(response, request)
112− Expect(err).ToNot(HaveOccurred())
113− })
114−
115− It("sets a `set-cookie` header in the response", func() {
107+ It("sets a `set-cookie` header in the response", func() {
116− Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
108+ Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty())
117− })
118−
119− CheckCookieOptions()
120 })
109 })
110+
111+ CheckCookieOptions()
112+ })
113+ }
114+
115+ RunCookieTests := func() {
116+ Context("with default options", func() {
117+ BeforeEach(func() {
118+ var err error
119+ ss, err = sessions.NewSessionStore(opts, cookieOpts)
120+ Expect(err).ToNot(HaveOccurred())
121+ })
122+
123+ SessionStoreInterfaceTests()
121 })
124 })
122
125
123 Context("with non-default options", func() {
126 Context("with non-default options", func() {
@@ -137,46 +140,13 @@ var _ = Describe("NewSessionStore", func() {
137 Expect(err).ToNot(HaveOccurred())
140 Expect(err).ToNot(HaveOccurred())
138 })
141 })
139
142
140− Context("when SaveSession is called", func() {
143+ SessionStoreInterfaceTests()
141− BeforeEach(func() {
142− err := ss.SaveSession(response, request, session)
143− Expect(err).ToNot(HaveOccurred())
144− })
145−
146− It("sets a `set-cookie` header in the response", func() {
147− Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
148− })
149
144
150− CheckCookieOptions()
151− })
152−
153− Context("when ClearSession is called", func() {
154− BeforeEach(func() {
155− cookie := cookies.MakeCookie(request,
156− cookieOpts.CookieName,
157− "foo",
158− cookieOpts.CookiePath,
159− cookieOpts.CookieDomain,
160− cookieOpts.CookieHTTPOnly,
161− cookieOpts.CookieSecure,
162− cookieOpts.CookieExpire,
163− time.Now(),
164− )
165− request.AddCookie(cookie)
166− err := ss.ClearSession(response, request)
167− Expect(err).ToNot(HaveOccurred())
168− })
169−
170− It("sets a `set-cookie` header in the response", func() {
171− Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty())
172− })
173−
174− CheckCookieOptions()
175− })
176 })
145 })
177 }
146 }
178
147
179 BeforeEach(func() {
148 BeforeEach(func() {
149+ ss = nil
180 opts = &options.SessionOptions{}
150 opts = &options.SessionOptions{}
181
151
182 // Set default options in CookieOptions
152 // Set default options in CookieOptions