Files
traefikoidc/internal/testutil/compat.go
T
lukaszraczylo c474bbafd6 Cleanup [dec2025] (#101)
* Cleanup excessive comments.

* Remove leftovers hanging around from previous refactor

* Improve test coverage
2025-12-09 01:38:02 +00:00

141 lines
3.9 KiB
Go

package testutil
import (
"time"
"github.com/lukaszraczylo/traefikoidc/internal/testutil/fixtures"
"github.com/lukaszraczylo/traefikoidc/internal/testutil/mocks"
"github.com/lukaszraczylo/traefikoidc/internal/testutil/servers"
)
// Re-export types for easier access from main package tests
type (
// Mocks
JWKCacheMock = mocks.JWKCache
TokenExchangerMock = mocks.TokenExchanger
TokenVerifierMock = mocks.TokenVerifier
JWTVerifierMock = mocks.JWTVerifier
SessionManagerMock = mocks.SessionManager
CacheMock = mocks.Cache
TokenCacheMock = mocks.TokenCache
BlacklistMock = mocks.Blacklist
HTTPClientMock = mocks.HTTPClient
RoundTripperMock = mocks.RoundTripper
LoggerMock = mocks.Logger
// Mock types
JWKSet = mocks.JWKSet
JWK = mocks.JWK
MockTokenResponse = mocks.TokenResponse
MockSessionData = mocks.SessionData
IntrospectionResp = mocks.IntrospectionResponse
// Fixtures
TokenFixture = fixtures.TokenFixture
// Servers
OIDCServer = servers.OIDCServer
OIDCServerConfig = servers.OIDCServerConfig
OIDCError = servers.OIDCError
)
// NewJWKCacheMock creates a new JWK cache mock
func NewJWKCacheMock() *mocks.JWKCache {
return new(mocks.JWKCache)
}
// NewTokenExchangerMock creates a new token exchanger mock
func NewTokenExchangerMock() *mocks.TokenExchanger {
return new(mocks.TokenExchanger)
}
// NewTokenVerifierMock creates a new token verifier mock
func NewTokenVerifierMock() *mocks.TokenVerifier {
return new(mocks.TokenVerifier)
}
// NewJWTVerifierMock creates a new JWT verifier mock
func NewJWTVerifierMock() *mocks.JWTVerifier {
return new(mocks.JWTVerifier)
}
// NewSessionManagerMock creates a new session manager mock
func NewSessionManagerMock() *mocks.SessionManager {
return new(mocks.SessionManager)
}
// NewCacheMock creates a new cache mock
func NewCacheMock() *mocks.Cache {
return new(mocks.Cache)
}
// NewTokenCacheMock creates a new token cache mock
func NewTokenCacheMock() *mocks.TokenCache {
return new(mocks.TokenCache)
}
// NewBlacklistMock creates a new blacklist mock
func NewBlacklistMock() *mocks.Blacklist {
return new(mocks.Blacklist)
}
// NewHTTPClientMock creates a new HTTP client mock
func NewHTTPClientMock() *mocks.HTTPClient {
return new(mocks.HTTPClient)
}
// NewRoundTripperMock creates a new round tripper mock
func NewRoundTripperMock() *mocks.RoundTripper {
return new(mocks.RoundTripper)
}
// NewLoggerMock creates a new logger mock
func NewLoggerMock() *mocks.Logger {
return new(mocks.Logger)
}
// NewTokenFixture creates a new token fixture
func NewTokenFixture() (*fixtures.TokenFixture, error) {
return fixtures.NewTokenFixture()
}
// NewOIDCServer creates a new mock OIDC server
func NewOIDCServer(config *servers.OIDCServerConfig) *servers.OIDCServer {
return servers.NewOIDCServer(config)
}
// DefaultServerConfig returns a default server configuration
func DefaultServerConfig() *servers.OIDCServerConfig {
return servers.DefaultConfig()
}
// GoogleServerConfig returns a Google-like server configuration
func GoogleServerConfig() *servers.OIDCServerConfig {
return servers.GoogleConfig()
}
// AzureServerConfig returns an Azure AD-like server configuration
func AzureServerConfig() *servers.OIDCServerConfig {
return servers.AzureConfig()
}
// Auth0ServerConfig returns an Auth0-like server configuration
func Auth0ServerConfig() *servers.OIDCServerConfig {
return servers.Auth0Config()
}
// KeycloakServerConfig returns a Keycloak-like server configuration
func KeycloakServerConfig() *servers.OIDCServerConfig {
return servers.KeycloakConfig()
}
// SlowServerConfig returns a configuration with delays
func SlowServerConfig(delay time.Duration) *servers.OIDCServerConfig {
return servers.SlowServerConfig(delay)
}
// RateLimitedServerConfig returns a rate-limited configuration
func RateLimitedServerConfig(afterN int) *servers.OIDCServerConfig {
return servers.RateLimitedConfig(afterN)
}