Merge 3e538674e8 into 1f049e5ebd
This commit is contained in:
commit
9d7bb3dd28
|
|
@ -639,9 +639,11 @@ var _ = Describe("Stored Session Suite", func() {
|
||||||
|
|
||||||
Context("refreshSession", func() {
|
Context("refreshSession", func() {
|
||||||
type refreshSessionWithProviderTableInput struct {
|
type refreshSessionWithProviderTableInput struct {
|
||||||
session *sessionsapi.SessionState
|
session *sessionsapi.SessionState
|
||||||
expectedErr error
|
expectedErr error
|
||||||
expectSaved bool
|
expectSaved bool
|
||||||
|
expectEnriched bool
|
||||||
|
sessionEnricher func(context.Context, *sessionsapi.SessionState) error
|
||||||
}
|
}
|
||||||
|
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|
@ -649,6 +651,7 @@ var _ = Describe("Stored Session Suite", func() {
|
||||||
DescribeTable("when refreshing with the provider",
|
DescribeTable("when refreshing with the provider",
|
||||||
func(in refreshSessionWithProviderTableInput) {
|
func(in refreshSessionWithProviderTableInput) {
|
||||||
saved := false
|
saved := false
|
||||||
|
enriched := false
|
||||||
|
|
||||||
s := &storedSessionLoader{
|
s := &storedSessionLoader{
|
||||||
store: &fakeSessionStore{
|
store: &fakeSessionStore{
|
||||||
|
|
@ -672,6 +675,13 @@ var _ = Describe("Stored Session Suite", func() {
|
||||||
return false, errors.New("error refreshing session")
|
return false, errors.New("error refreshing session")
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
sessionEnricher: func(_ context.Context, _ *sessionsapi.SessionState) error {
|
||||||
|
enriched = true
|
||||||
|
if in.sessionEnricher != nil {
|
||||||
|
return in.sessionEnricher(context.Background(), nil)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
req := httptest.NewRequest("", "/", nil)
|
req := httptest.NewRequest("", "/", nil)
|
||||||
|
|
@ -683,27 +693,31 @@ var _ = Describe("Stored Session Suite", func() {
|
||||||
Expect(err).ToNot(HaveOccurred())
|
Expect(err).ToNot(HaveOccurred())
|
||||||
}
|
}
|
||||||
Expect(saved).To(Equal(in.expectSaved))
|
Expect(saved).To(Equal(in.expectSaved))
|
||||||
|
Expect(enriched).To(Equal(in.expectEnriched))
|
||||||
},
|
},
|
||||||
Entry("when the provider does not refresh the session", refreshSessionWithProviderTableInput{
|
Entry("when the provider does not refresh the session", refreshSessionWithProviderTableInput{
|
||||||
session: &sessionsapi.SessionState{
|
session: &sessionsapi.SessionState{
|
||||||
RefreshToken: noRefresh,
|
RefreshToken: noRefresh,
|
||||||
},
|
},
|
||||||
expectedErr: nil,
|
expectedErr: nil,
|
||||||
expectSaved: false,
|
expectSaved: false,
|
||||||
|
expectEnriched: false,
|
||||||
}),
|
}),
|
||||||
Entry("when the provider refreshes the session", refreshSessionWithProviderTableInput{
|
Entry("when the provider refreshes the session", refreshSessionWithProviderTableInput{
|
||||||
session: &sessionsapi.SessionState{
|
session: &sessionsapi.SessionState{
|
||||||
RefreshToken: refresh,
|
RefreshToken: refresh,
|
||||||
},
|
},
|
||||||
expectedErr: nil,
|
expectedErr: nil,
|
||||||
expectSaved: true,
|
expectSaved: true,
|
||||||
|
expectEnriched: true,
|
||||||
}),
|
}),
|
||||||
Entry("when the provider doesn't implement refresh", refreshSessionWithProviderTableInput{
|
Entry("when the provider doesn't implement refresh", refreshSessionWithProviderTableInput{
|
||||||
session: &sessionsapi.SessionState{
|
session: &sessionsapi.SessionState{
|
||||||
RefreshToken: notImplemented,
|
RefreshToken: notImplemented,
|
||||||
},
|
},
|
||||||
expectedErr: nil,
|
expectedErr: nil,
|
||||||
expectSaved: true,
|
expectSaved: true,
|
||||||
|
expectEnriched: false,
|
||||||
}),
|
}),
|
||||||
Entry("when the provider returns an error", refreshSessionWithProviderTableInput{
|
Entry("when the provider returns an error", refreshSessionWithProviderTableInput{
|
||||||
session: &sessionsapi.SessionState{
|
session: &sessionsapi.SessionState{
|
||||||
|
|
@ -711,16 +725,29 @@ var _ = Describe("Stored Session Suite", func() {
|
||||||
CreatedAt: &now,
|
CreatedAt: &now,
|
||||||
ExpiresOn: &now,
|
ExpiresOn: &now,
|
||||||
},
|
},
|
||||||
expectedErr: errors.New("error refreshing tokens: error refreshing session"),
|
expectedErr: errors.New("error refreshing tokens: error refreshing session"),
|
||||||
expectSaved: false,
|
expectSaved: false,
|
||||||
|
expectEnriched: false,
|
||||||
}),
|
}),
|
||||||
Entry("when the saving the session returns an error", refreshSessionWithProviderTableInput{
|
Entry("when the saving the session returns an error", refreshSessionWithProviderTableInput{
|
||||||
session: &sessionsapi.SessionState{
|
session: &sessionsapi.SessionState{
|
||||||
RefreshToken: refresh,
|
RefreshToken: refresh,
|
||||||
AccessToken: "NoSave",
|
AccessToken: "NoSave",
|
||||||
},
|
},
|
||||||
expectedErr: errors.New("error saving session: unable to save session"),
|
expectedErr: errors.New("error saving session: unable to save session"),
|
||||||
expectSaved: true,
|
expectSaved: true,
|
||||||
|
expectEnriched: true,
|
||||||
|
}),
|
||||||
|
Entry("when enriching the session returns an error", refreshSessionWithProviderTableInput{
|
||||||
|
session: &sessionsapi.SessionState{
|
||||||
|
RefreshToken: refresh,
|
||||||
|
},
|
||||||
|
sessionEnricher: func(_ context.Context, _ *sessionsapi.SessionState) error {
|
||||||
|
return errors.New("enrich error")
|
||||||
|
},
|
||||||
|
expectedErr: errors.New("error enriching session after refresh: enrich error"),
|
||||||
|
expectSaved: false,
|
||||||
|
expectEnriched: true,
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue