Files
traefikoidc/internal/testutil/mocks/session.go
T
lukaszraczylo 6efb78b7a8 Smarter approach to the cookies (#103)
* Smarter approach to the cookies

  - Single maxCookieSize = 1400 constant with clear documentation
  - Combined cookie storage for ~40-45% size reduction
  - Backward compatible migration from legacy cookies

* Tuneup the code.
2025-12-12 18:35:06 +00:00

95 lines
2.5 KiB
Go

package mocks
import (
"net/http"
"github.com/stretchr/testify/mock"
)
// SessionData represents session data for testing
type SessionData struct {
Claims map[string]interface{}
Email string
AccessToken string
RefreshToken string
IDToken string
Nonce string
State string
CodeVerifier string
RedirectURL string
Expiry int64
}
// SessionManager is a testify mock for session management
type SessionManager struct {
mock.Mock
}
// GetSession retrieves a session from the request
func (m *SessionManager) GetSession(r *http.Request) (*SessionData, error) {
args := m.Called(r)
if args.Get(0) == nil {
return nil, args.Error(1)
}
return args.Get(0).(*SessionData), args.Error(1)
}
// SaveSession saves a session to the response
func (m *SessionManager) SaveSession(r *http.Request, w http.ResponseWriter, session *SessionData) error {
args := m.Called(r, w, session)
return args.Error(0)
}
// DeleteSession removes a session
func (m *SessionManager) DeleteSession(r *http.Request, w http.ResponseWriter) error {
args := m.Called(r, w)
return args.Error(0)
}
// SetAccessToken sets the access token in the session
func (m *SessionManager) SetAccessToken(session *SessionData, token string) error {
args := m.Called(session, token)
return args.Error(0)
}
// SetRefreshToken sets the refresh token in the session
func (m *SessionManager) SetRefreshToken(session *SessionData, token string) error {
args := m.Called(session, token)
return args.Error(0)
}
// SetIDToken sets the ID token in the session
func (m *SessionManager) SetIDToken(session *SessionData, token string) error {
args := m.Called(session, token)
return args.Error(0)
}
// GetAccessToken gets the access token from the session
func (m *SessionManager) GetAccessToken(session *SessionData) string {
args := m.Called(session)
return args.String(0)
}
// GetRefreshToken gets the refresh token from the session
func (m *SessionManager) GetRefreshToken(session *SessionData) string {
args := m.Called(session)
return args.String(0)
}
// GetIDToken gets the ID token from the session
func (m *SessionManager) GetIDToken(session *SessionData) string {
args := m.Called(session)
return args.String(0)
}
// IsExpired checks if the session is expired
func (m *SessionManager) IsExpired(session *SessionData) bool {
args := m.Called(session)
return args.Bool(0)
}
// CleanupOldCookies removes old/stale cookies
func (m *SessionManager) CleanupOldCookies(r *http.Request, w http.ResponseWriter) {
m.Called(r, w)
}