@@ -16,6 +16,7 @@ import (
1616 "github.com/pusher/oauth2_proxy/cookie"
1717 "github.com/pusher/oauth2_proxy/pkg/apis/options"
1818 sessionsapi "github.com/pusher/oauth2_proxy/pkg/apis/sessions"
19+ "github.com/pusher/oauth2_proxy/pkg/cookies"
1920 "github.com/pusher/oauth2_proxy/pkg/sessions"
2021 sessionscookie "github.com/pusher/oauth2_proxy/pkg/sessions/cookie"
2122 "github.com/pusher/oauth2_proxy/pkg/sessions/redis"
@@ -153,6 +154,27 @@ var _ = Describe("NewSessionStore", func() {
153154 })
154155 })
155156
157+ Context("with a broken session", func() {
158+ BeforeEach(func() {
159+ By("Using a valid cookie with a different providers session encoding")
160+ broken := "BrokenSessionFromADifferentSessionImplementation"
161+ value := cookie.SignedValue(cookieOpts.CookieSecret, cookieOpts.CookieName, broken, time.Now())
162+ cookie := cookies.MakeCookieFromOptions(request, cookieOpts.CookieName, value, cookieOpts, cookieOpts.CookieExpire, time.Now())
163+ request.AddCookie(cookie)
164+
165+ err := ss.Save(response, request, session)
166+ Expect(err).ToNot(HaveOccurred())
167+ })
168+
169+ It("sets a `set-cookie` header in the response", func() {
170+ Expect(response.Header().Get("set-cookie")).ToNot(BeEmpty())
171+ })
172+
173+ It("Ensures the session CreatedAt is not zero", func() {
174+ Expect(session.CreatedAt.IsZero()).To(BeFalse())
175+ })
176+ })
177+
156178 Context("with an expired saved session", func() {
157179 var err error
158180 BeforeEach(func() {