This commit is contained in:
Uğur Tafralı 2026-04-17 12:04:06 +03:00 committed by GitHub
commit 2e4af61fc8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 40 additions and 13 deletions

View File

@ -639,9 +639,11 @@ var _ = Describe("Stored Session Suite", func() {
Context("refreshSession", func() {
type refreshSessionWithProviderTableInput struct {
session *sessionsapi.SessionState
expectedErr error
expectSaved bool
session *sessionsapi.SessionState
expectedErr error
expectSaved bool
expectEnriched bool
sessionEnricher func(context.Context, *sessionsapi.SessionState) error
}
now := time.Now()
@ -649,6 +651,7 @@ var _ = Describe("Stored Session Suite", func() {
DescribeTable("when refreshing with the provider",
func(in refreshSessionWithProviderTableInput) {
saved := false
enriched := false
s := &storedSessionLoader{
store: &fakeSessionStore{
@ -672,6 +675,13 @@ var _ = Describe("Stored Session Suite", func() {
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)
@ -683,27 +693,31 @@ var _ = Describe("Stored Session Suite", func() {
Expect(err).ToNot(HaveOccurred())
}
Expect(saved).To(Equal(in.expectSaved))
Expect(enriched).To(Equal(in.expectEnriched))
},
Entry("when the provider does not refresh the session", refreshSessionWithProviderTableInput{
session: &sessionsapi.SessionState{
RefreshToken: noRefresh,
},
expectedErr: nil,
expectSaved: false,
expectedErr: nil,
expectSaved: false,
expectEnriched: false,
}),
Entry("when the provider refreshes the session", refreshSessionWithProviderTableInput{
session: &sessionsapi.SessionState{
RefreshToken: refresh,
},
expectedErr: nil,
expectSaved: true,
expectedErr: nil,
expectSaved: true,
expectEnriched: true,
}),
Entry("when the provider doesn't implement refresh", refreshSessionWithProviderTableInput{
session: &sessionsapi.SessionState{
RefreshToken: notImplemented,
},
expectedErr: nil,
expectSaved: true,
expectedErr: nil,
expectSaved: true,
expectEnriched: false,
}),
Entry("when the provider returns an error", refreshSessionWithProviderTableInput{
session: &sessionsapi.SessionState{
@ -711,16 +725,29 @@ var _ = Describe("Stored Session Suite", func() {
CreatedAt: &now,
ExpiresOn: &now,
},
expectedErr: errors.New("error refreshing tokens: error refreshing session"),
expectSaved: false,
expectedErr: errors.New("error refreshing tokens: error refreshing session"),
expectSaved: false,
expectEnriched: false,
}),
Entry("when the saving the session returns an error", refreshSessionWithProviderTableInput{
session: &sessionsapi.SessionState{
RefreshToken: refresh,
AccessToken: "NoSave",
},
expectedErr: errors.New("error saving session: unable to save session"),
expectSaved: true,
expectedErr: errors.New("error saving session: unable to save session"),
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,
}),
)
})