git.iko.soy/typeable/oauth2-proxy
on master help sign in
Refactor persistent tests with more Context
4f5dbacJoel Speed
pkg/sessions/session_store_test.go+21−15
@@ -93,36 +93,42 @@ var _ = Describe("NewSessionStore", func() {
93 // The following should only be for server stores
93 // The following should only be for server stores
94 PersistentSessionStoreTests := func() {
94 PersistentSessionStoreTests := func() {
95 Context("when Clear is called on a persistent store", func() {
95 Context("when Clear is called on a persistent store", func() {
96− var loadedAfterClear *sessionsapi.SessionState
96+ var resultCookies []*http.Cookie
97+
97 BeforeEach(func() {
98 BeforeEach(func() {
98 req := httptest.NewRequest("GET", "http://example.com/", nil)
99 req := httptest.NewRequest("GET", "http://example.com/", nil)
99 saveResp := httptest.NewRecorder()
100 saveResp := httptest.NewRecorder()
100 err := ss.Save(saveResp, req, session)
101 err := ss.Save(saveResp, req, session)
101 Expect(err).ToNot(HaveOccurred())
102 Expect(err).ToNot(HaveOccurred())
102
103
103− resultCookies := saveResp.Result().Cookies()
104+ resultCookies = saveResp.Result().Cookies()
104 for _, c := range resultCookies {
105 for _, c := range resultCookies {
105 request.AddCookie(c)
106 request.AddCookie(c)
106 }
107 }
107 err = ss.Clear(response, request)
108 err = ss.Clear(response, request)
108 Expect(err).ToNot(HaveOccurred())
109 Expect(err).ToNot(HaveOccurred())
110+ })
109
111
110− loadReq := httptest.NewRequest("GET", "http://example.com/", nil)
112+ Context("attempting to Load", func() {
111− for _, c := range resultCookies {
113+ var loadedAfterClear *sessionsapi.SessionState
112− loadReq.AddCookie(c)
114+ var loadErr error
113− }
114
115
115− loadedAfterClear, err = ss.Load(loadReq)
116+ BeforeEach(func() {
116− // If we have cleared the session, Load should fail
117+ loadReq := httptest.NewRequest("GET", "http://example.com/", nil)
117− Expect(err).To(HaveOccurred())
118+ for _, c := range resultCookies {
119+ loadReq.AddCookie(c)
118− })
120+ }
119
121
120− It("sets a `set-cookie` header in the response", func() {
122+ loadedAfterClear, loadErr = ss.Load(loadReq)
121− Expect(response.Header().Get("Set-Cookie")).ToNot(BeEmpty())
123+ })
124+
125+ It("returns an empty session", func() {
126+ Expect(loadedAfterClear).To(BeNil())
122− })
127+ })
123
128
124− It("attempting to Load returns an empty session", func() {
129+ It("returns an error", func() {
125− Expect(loadedAfterClear).To(BeNil())
130+ Expect(loadErr).To(HaveOccurred())
131+ })
126 })
132 })
127
133
128 CheckCookieOptions()
134 CheckCookieOptions()