feat: use postgres
This commit is contained in:
@@ -11,12 +11,36 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"galaxy/redisconn"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var configEnvMu sync.Mutex
|
||||
|
||||
const (
|
||||
gatewayRedisMasterAddrEnvVar = "GATEWAY_REDIS_MASTER_ADDR"
|
||||
gatewayRedisPasswordEnvVar = "GATEWAY_REDIS_PASSWORD"
|
||||
gatewayRedisReplicaAddrsEnvVar = "GATEWAY_REDIS_REPLICA_ADDRS"
|
||||
gatewayRedisDBEnvVar = "GATEWAY_REDIS_DB"
|
||||
gatewayRedisOpTimeoutEnvVar = "GATEWAY_REDIS_OPERATION_TIMEOUT"
|
||||
gatewayRedisTLSEnabledEnvVar = "GATEWAY_REDIS_TLS_ENABLED"
|
||||
gatewayRedisUsernameEnvVar = "GATEWAY_REDIS_USERNAME"
|
||||
)
|
||||
|
||||
var (
|
||||
defaultTestRedisMasterAddrValue = "127.0.0.1:6379"
|
||||
defaultTestRedisPasswordValue = "secret"
|
||||
)
|
||||
|
||||
func defaultRedisConnConfigForTest() redisconn.Config {
|
||||
cfg := redisconn.DefaultConfig()
|
||||
cfg.MasterAddr = defaultTestRedisMasterAddrValue
|
||||
cfg.Password = defaultTestRedisPasswordValue
|
||||
return cfg
|
||||
}
|
||||
|
||||
func TestLoadFromEnv(t *testing.T) {
|
||||
customResponseSignerPrivateKeyPEMPath := new(string)
|
||||
*customResponseSignerPrivateKeyPEMPath = writeTestResponseSignerPEMFile(t)
|
||||
@@ -90,6 +114,7 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
authenticatedGRPCAddr *string
|
||||
authenticatedGRPCFreshnessWindow *string
|
||||
sessionCacheRedisAddr *string
|
||||
skipRedis bool
|
||||
responseSignerPrivateKeyPEMPath *string
|
||||
want Config
|
||||
wantErr string
|
||||
@@ -104,9 +129,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
PublicHTTP: DefaultPublicHTTPConfig(),
|
||||
AdminHTTP: DefaultAdminHTTPConfig(),
|
||||
AuthenticatedGRPC: DefaultAuthenticatedGRPCConfig(),
|
||||
Redis: defaultRedisConnConfigForTest(),
|
||||
SessionCacheRedis: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DB: defaultSessionCacheRedisDB,
|
||||
KeyPrefix: defaultSessionCacheRedisKeyPrefix,
|
||||
LookupTimeout: defaultSessionCacheRedisLookupTimeout,
|
||||
},
|
||||
@@ -135,9 +159,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
PublicHTTP: DefaultPublicHTTPConfig(),
|
||||
AdminHTTP: DefaultAdminHTTPConfig(),
|
||||
AuthenticatedGRPC: DefaultAuthenticatedGRPCConfig(),
|
||||
Redis: defaultRedisConnConfigForTest(),
|
||||
SessionCacheRedis: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DB: defaultSessionCacheRedisDB,
|
||||
KeyPrefix: defaultSessionCacheRedisKeyPrefix,
|
||||
LookupTimeout: defaultSessionCacheRedisLookupTimeout,
|
||||
},
|
||||
@@ -170,9 +193,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
}(),
|
||||
AdminHTTP: DefaultAdminHTTPConfig(),
|
||||
AuthenticatedGRPC: DefaultAuthenticatedGRPCConfig(),
|
||||
Redis: defaultRedisConnConfigForTest(),
|
||||
SessionCacheRedis: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DB: defaultSessionCacheRedisDB,
|
||||
KeyPrefix: defaultSessionCacheRedisKeyPrefix,
|
||||
LookupTimeout: defaultSessionCacheRedisLookupTimeout,
|
||||
},
|
||||
@@ -204,9 +226,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
},
|
||||
AdminHTTP: DefaultAdminHTTPConfig(),
|
||||
AuthenticatedGRPC: DefaultAuthenticatedGRPCConfig(),
|
||||
Redis: defaultRedisConnConfigForTest(),
|
||||
SessionCacheRedis: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DB: defaultSessionCacheRedisDB,
|
||||
KeyPrefix: defaultSessionCacheRedisKeyPrefix,
|
||||
LookupTimeout: defaultSessionCacheRedisLookupTimeout,
|
||||
},
|
||||
@@ -238,9 +259,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
},
|
||||
AdminHTTP: DefaultAdminHTTPConfig(),
|
||||
AuthenticatedGRPC: DefaultAuthenticatedGRPCConfig(),
|
||||
Redis: defaultRedisConnConfigForTest(),
|
||||
SessionCacheRedis: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DB: defaultSessionCacheRedisDB,
|
||||
KeyPrefix: defaultSessionCacheRedisKeyPrefix,
|
||||
LookupTimeout: defaultSessionCacheRedisLookupTimeout,
|
||||
},
|
||||
@@ -273,9 +293,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
cfg.Addr = "127.0.0.1:9191"
|
||||
return cfg
|
||||
}(),
|
||||
Redis: defaultRedisConnConfigForTest(),
|
||||
SessionCacheRedis: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DB: defaultSessionCacheRedisDB,
|
||||
KeyPrefix: defaultSessionCacheRedisKeyPrefix,
|
||||
LookupTimeout: defaultSessionCacheRedisLookupTimeout,
|
||||
},
|
||||
@@ -308,9 +327,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
cfg.FreshnessWindow = 90 * time.Second
|
||||
return cfg
|
||||
}(),
|
||||
Redis: defaultRedisConnConfigForTest(),
|
||||
SessionCacheRedis: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6379",
|
||||
DB: defaultSessionCacheRedisDB,
|
||||
KeyPrefix: defaultSessionCacheRedisKeyPrefix,
|
||||
LookupTimeout: defaultSessionCacheRedisLookupTimeout,
|
||||
},
|
||||
@@ -378,21 +396,10 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
wantErr: "parse " + authenticatedGRPCFreshnessWindowEnvVar,
|
||||
},
|
||||
{
|
||||
name: "missing session cache redis address",
|
||||
name: "missing redis master addr",
|
||||
responseSignerPrivateKeyPEMPath: customResponseSignerPrivateKeyPEMPath,
|
||||
wantErr: "GATEWAY_SESSION_CACHE_REDIS_ADDR must not be empty",
|
||||
},
|
||||
{
|
||||
name: "empty session cache redis address",
|
||||
sessionCacheRedisAddr: emptySessionCacheRedisAddr,
|
||||
responseSignerPrivateKeyPEMPath: customResponseSignerPrivateKeyPEMPath,
|
||||
wantErr: "GATEWAY_SESSION_CACHE_REDIS_ADDR must not be empty",
|
||||
},
|
||||
{
|
||||
name: "whitespace session cache redis address",
|
||||
sessionCacheRedisAddr: whitespaceSessionCacheRedisAddr,
|
||||
responseSignerPrivateKeyPEMPath: customResponseSignerPrivateKeyPEMPath,
|
||||
wantErr: "GATEWAY_SESSION_CACHE_REDIS_ADDR must not be empty",
|
||||
skipRedis: true,
|
||||
wantErr: "GATEWAY_REDIS_MASTER_ADDR must be set",
|
||||
},
|
||||
{
|
||||
name: "missing response signer private key path",
|
||||
@@ -412,7 +419,8 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
userServiceBaseURLEnvVar,
|
||||
authenticatedGRPCAddrEnvVar,
|
||||
authenticatedGRPCFreshnessWindowEnvVar,
|
||||
sessionCacheRedisAddrEnvVar,
|
||||
gatewayRedisMasterAddrEnvVar,
|
||||
gatewayRedisPasswordEnvVar,
|
||||
sessionEventsRedisStreamEnvVar,
|
||||
clientEventsRedisStreamEnvVar,
|
||||
responseSignerPrivateKeyPEMPathEnvVar,
|
||||
@@ -424,7 +432,14 @@ func TestLoadFromEnv(t *testing.T) {
|
||||
setEnvValue(t, userServiceBaseURLEnvVar, tt.userServiceBaseURL)
|
||||
setEnvValue(t, authenticatedGRPCAddrEnvVar, tt.authenticatedGRPCAddr)
|
||||
setEnvValue(t, authenticatedGRPCFreshnessWindowEnvVar, tt.authenticatedGRPCFreshnessWindow)
|
||||
setEnvValue(t, sessionCacheRedisAddrEnvVar, tt.sessionCacheRedisAddr)
|
||||
redisAddr := tt.sessionCacheRedisAddr
|
||||
if !tt.skipRedis && redisAddr == nil {
|
||||
redisAddr = customSessionCacheRedisAddr
|
||||
}
|
||||
setEnvValue(t, gatewayRedisMasterAddrEnvVar, redisAddr)
|
||||
if !tt.skipRedis {
|
||||
setEnvValue(t, gatewayRedisPasswordEnvVar, &defaultTestRedisPasswordValue)
|
||||
}
|
||||
setEnvValue(t, sessionEventsRedisStreamEnvVar, customSessionEventsRedisStream)
|
||||
setEnvValue(t, clientEventsRedisStreamEnvVar, customClientEventsRedisStream)
|
||||
setEnvValue(t, responseSignerPrivateKeyPEMPathEnvVar, tt.responseSignerPrivateKeyPEMPath)
|
||||
@@ -490,7 +505,7 @@ func TestLoadFromEnvOperationalSettings(t *testing.T) {
|
||||
{
|
||||
name: "custom operational settings",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
sessionEventsRedisStreamEnvVar: customSessionEventsRedisStream,
|
||||
clientEventsRedisStreamEnvVar: customClientEventsRedisStream,
|
||||
responseSignerPrivateKeyPEMPathEnvVar: customResponseSignerPrivateKeyPEMPath,
|
||||
@@ -516,7 +531,7 @@ func TestLoadFromEnvOperationalSettings(t *testing.T) {
|
||||
{
|
||||
name: "invalid log level",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
sessionEventsRedisStreamEnvVar: customSessionEventsRedisStream,
|
||||
clientEventsRedisStreamEnvVar: customClientEventsRedisStream,
|
||||
responseSignerPrivateKeyPEMPathEnvVar: customResponseSignerPrivateKeyPEMPath,
|
||||
@@ -608,13 +623,14 @@ func TestLoadFromEnvAuthService(t *testing.T) {
|
||||
authServiceBaseURLEnvVar,
|
||||
userServiceBaseURLEnvVar,
|
||||
logLevelEnvVar,
|
||||
sessionCacheRedisAddrEnvVar,
|
||||
gatewayRedisMasterAddrEnvVar,
|
||||
sessionEventsRedisStreamEnvVar,
|
||||
clientEventsRedisStreamEnvVar,
|
||||
responseSignerPrivateKeyPEMPathEnvVar,
|
||||
)
|
||||
setEnvValue(t, authServiceBaseURLEnvVar, tt.value)
|
||||
setEnvValue(t, sessionCacheRedisAddrEnvVar, customSessionCacheRedisAddr)
|
||||
setEnvValue(t, gatewayRedisMasterAddrEnvVar, customSessionCacheRedisAddr)
|
||||
setEnvValue(t, gatewayRedisPasswordEnvVar, &defaultTestRedisPasswordValue)
|
||||
setEnvValue(t, sessionEventsRedisStreamEnvVar, customSessionEventsRedisStream)
|
||||
setEnvValue(t, clientEventsRedisStreamEnvVar, customClientEventsRedisStream)
|
||||
setEnvValue(t, responseSignerPrivateKeyPEMPathEnvVar, customResponseSignerPrivateKeyPEMPath)
|
||||
@@ -674,13 +690,14 @@ func TestLoadFromEnvUserService(t *testing.T) {
|
||||
authServiceBaseURLEnvVar,
|
||||
userServiceBaseURLEnvVar,
|
||||
logLevelEnvVar,
|
||||
sessionCacheRedisAddrEnvVar,
|
||||
gatewayRedisMasterAddrEnvVar,
|
||||
sessionEventsRedisStreamEnvVar,
|
||||
clientEventsRedisStreamEnvVar,
|
||||
responseSignerPrivateKeyPEMPathEnvVar,
|
||||
)
|
||||
setEnvValue(t, userServiceBaseURLEnvVar, tt.value)
|
||||
setEnvValue(t, sessionCacheRedisAddrEnvVar, customSessionCacheRedisAddr)
|
||||
setEnvValue(t, gatewayRedisMasterAddrEnvVar, customSessionCacheRedisAddr)
|
||||
setEnvValue(t, gatewayRedisPasswordEnvVar, &defaultTestRedisPasswordValue)
|
||||
setEnvValue(t, sessionEventsRedisStreamEnvVar, customSessionEventsRedisStream)
|
||||
setEnvValue(t, clientEventsRedisStreamEnvVar, customClientEventsRedisStream)
|
||||
setEnvValue(t, responseSignerPrivateKeyPEMPathEnvVar, customResponseSignerPrivateKeyPEMPath)
|
||||
@@ -811,7 +828,7 @@ func TestLoadFromEnvAuthenticatedGRPCAntiAbuse(t *testing.T) {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
restoreEnvs(
|
||||
t,
|
||||
sessionCacheRedisAddrEnvVar,
|
||||
gatewayRedisMasterAddrEnvVar,
|
||||
authenticatedGRPCIPRateLimitRequestsEnvVar,
|
||||
authenticatedGRPCIPRateLimitWindowEnvVar,
|
||||
authenticatedGRPCIPRateLimitBurstEnvVar,
|
||||
@@ -829,7 +846,8 @@ func TestLoadFromEnvAuthenticatedGRPCAntiAbuse(t *testing.T) {
|
||||
responseSignerPrivateKeyPEMPathEnvVar,
|
||||
)
|
||||
|
||||
setEnvValue(t, sessionCacheRedisAddrEnvVar, customSessionCacheRedisAddr)
|
||||
setEnvValue(t, gatewayRedisMasterAddrEnvVar, customSessionCacheRedisAddr)
|
||||
setEnvValue(t, gatewayRedisPasswordEnvVar, &defaultTestRedisPasswordValue)
|
||||
setEnvValue(t, sessionEventsRedisStreamEnvVar, customSessionEventsRedisStream)
|
||||
setEnvValue(t, clientEventsRedisStreamEnvVar, customClientEventsRedisStream)
|
||||
setEnvValue(t, responseSignerPrivateKeyPEMPathEnvVar, customResponseSignerPrivateKeyPEMPath)
|
||||
@@ -859,7 +877,7 @@ func TestLoadFromEnvAuthenticatedGRPCAntiAbuse(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadFromEnvSessionCacheRedis(t *testing.T) {
|
||||
func TestLoadFromEnvRedis(t *testing.T) {
|
||||
customResponseSignerPrivateKeyPEMPath := new(string)
|
||||
*customResponseSignerPrivateKeyPEMPath = writeTestResponseSignerPEMFile(t)
|
||||
|
||||
@@ -872,8 +890,8 @@ func TestLoadFromEnvSessionCacheRedis(t *testing.T) {
|
||||
customRedisAddr := new(string)
|
||||
*customRedisAddr = "127.0.0.1:6380"
|
||||
|
||||
customRedisUsername := new(string)
|
||||
*customRedisUsername = "gateway"
|
||||
customRedisReplicas := new(string)
|
||||
*customRedisReplicas = "127.0.0.1:6481,127.0.0.1:6482"
|
||||
|
||||
customRedisPassword := new(string)
|
||||
*customRedisPassword = "secret"
|
||||
@@ -881,14 +899,14 @@ func TestLoadFromEnvSessionCacheRedis(t *testing.T) {
|
||||
customRedisDB := new(string)
|
||||
*customRedisDB = "7"
|
||||
|
||||
customRedisOpTimeout := new(string)
|
||||
*customRedisOpTimeout = "750ms"
|
||||
|
||||
customRedisKeyPrefix := new(string)
|
||||
*customRedisKeyPrefix = "edge:session:"
|
||||
|
||||
customRedisLookupTimeout := new(string)
|
||||
*customRedisLookupTimeout = "750ms"
|
||||
|
||||
customRedisTLSEnabled := new(string)
|
||||
*customRedisTLSEnabled = "true"
|
||||
*customRedisLookupTimeout = "950ms"
|
||||
|
||||
negativeRedisDB := new(string)
|
||||
*negativeRedisDB = "-1"
|
||||
@@ -896,67 +914,100 @@ func TestLoadFromEnvSessionCacheRedis(t *testing.T) {
|
||||
invalidRedisLookupTimeout := new(string)
|
||||
*invalidRedisLookupTimeout = "later"
|
||||
|
||||
invalidRedisTLSEnabled := new(string)
|
||||
*invalidRedisTLSEnabled = "maybe"
|
||||
deprecatedTLSEnabled := new(string)
|
||||
*deprecatedTLSEnabled = "true"
|
||||
|
||||
deprecatedUsername := new(string)
|
||||
*deprecatedUsername = "gateway"
|
||||
|
||||
type want struct {
|
||||
conn redisconn.Config
|
||||
sessionRedis SessionCacheRedisConfig
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
envs map[string]*string
|
||||
want SessionCacheRedisConfig
|
||||
want *want
|
||||
wantErr string
|
||||
}{
|
||||
{
|
||||
name: "custom redis config",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customRedisAddr,
|
||||
sessionCacheRedisUsernameEnvVar: customRedisUsername,
|
||||
sessionCacheRedisPasswordEnvVar: customRedisPassword,
|
||||
sessionCacheRedisDBEnvVar: customRedisDB,
|
||||
gatewayRedisMasterAddrEnvVar: customRedisAddr,
|
||||
gatewayRedisReplicaAddrsEnvVar: customRedisReplicas,
|
||||
gatewayRedisPasswordEnvVar: customRedisPassword,
|
||||
gatewayRedisDBEnvVar: customRedisDB,
|
||||
gatewayRedisOpTimeoutEnvVar: customRedisOpTimeout,
|
||||
sessionCacheRedisKeyPrefixEnvVar: customRedisKeyPrefix,
|
||||
sessionCacheRedisLookupTimeoutEnvVar: customRedisLookupTimeout,
|
||||
sessionCacheRedisTLSEnabledEnvVar: customRedisTLSEnabled,
|
||||
},
|
||||
want: SessionCacheRedisConfig{
|
||||
Addr: "127.0.0.1:6380",
|
||||
Username: "gateway",
|
||||
Password: "secret",
|
||||
DB: 7,
|
||||
KeyPrefix: "edge:session:",
|
||||
LookupTimeout: 750 * time.Millisecond,
|
||||
TLSEnabled: true,
|
||||
want: &want{
|
||||
conn: redisconn.Config{
|
||||
MasterAddr: "127.0.0.1:6380",
|
||||
ReplicaAddrs: []string{"127.0.0.1:6481", "127.0.0.1:6482"},
|
||||
Password: "secret",
|
||||
DB: 7,
|
||||
OperationTimeout: 750 * time.Millisecond,
|
||||
},
|
||||
sessionRedis: SessionCacheRedisConfig{
|
||||
KeyPrefix: "edge:session:",
|
||||
LookupTimeout: 950 * time.Millisecond,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "negative redis db",
|
||||
name: "negative redis db rejected by pkg/redisconn",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customRedisAddr,
|
||||
sessionCacheRedisDBEnvVar: negativeRedisDB,
|
||||
gatewayRedisMasterAddrEnvVar: customRedisAddr,
|
||||
gatewayRedisPasswordEnvVar: customRedisPassword,
|
||||
gatewayRedisDBEnvVar: negativeRedisDB,
|
||||
},
|
||||
wantErr: sessionCacheRedisDBEnvVar + " must not be negative",
|
||||
wantErr: "redis db must not be negative",
|
||||
},
|
||||
{
|
||||
name: "invalid redis lookup timeout",
|
||||
name: "invalid session cache lookup timeout",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customRedisAddr,
|
||||
gatewayRedisPasswordEnvVar: customRedisPassword,
|
||||
sessionCacheRedisLookupTimeoutEnvVar: invalidRedisLookupTimeout,
|
||||
},
|
||||
wantErr: "parse " + sessionCacheRedisLookupTimeoutEnvVar,
|
||||
},
|
||||
{
|
||||
name: "invalid redis tls flag",
|
||||
name: "missing redis password rejected",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customRedisAddr,
|
||||
sessionCacheRedisTLSEnabledEnvVar: invalidRedisTLSEnabled,
|
||||
gatewayRedisMasterAddrEnvVar: customRedisAddr,
|
||||
},
|
||||
wantErr: "parse " + sessionCacheRedisTLSEnabledEnvVar,
|
||||
wantErr: gatewayRedisPasswordEnvVar + " must be set",
|
||||
},
|
||||
{
|
||||
name: "deprecated tls enabled var rejected",
|
||||
envs: map[string]*string{
|
||||
gatewayRedisMasterAddrEnvVar: customRedisAddr,
|
||||
gatewayRedisPasswordEnvVar: customRedisPassword,
|
||||
gatewayRedisTLSEnabledEnvVar: deprecatedTLSEnabled,
|
||||
},
|
||||
wantErr: gatewayRedisTLSEnabledEnvVar,
|
||||
},
|
||||
{
|
||||
name: "deprecated username var rejected",
|
||||
envs: map[string]*string{
|
||||
gatewayRedisMasterAddrEnvVar: customRedisAddr,
|
||||
gatewayRedisPasswordEnvVar: customRedisPassword,
|
||||
gatewayRedisUsernameEnvVar: deprecatedUsername,
|
||||
},
|
||||
wantErr: gatewayRedisUsernameEnvVar,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
restoreEnvs(t, append(append(append(sessionCacheRedisEnvVars(), sessionEventsRedisEnvVars()...), clientEventsRedisEnvVars()...), responseSignerPrivateKeyPEMPathEnvVar)...)
|
||||
redisEnvVars := sessionCacheRedisEnvVars()
|
||||
restoreEnvs(t, append(append(append(redisEnvVars, sessionEventsRedisEnvVars()...), clientEventsRedisEnvVars()...), responseSignerPrivateKeyPEMPathEnvVar)...)
|
||||
for _, envVar := range redisEnvVars {
|
||||
setEnvValue(t, envVar, nil)
|
||||
}
|
||||
setEnvValue(t, responseSignerPrivateKeyPEMPathEnvVar, customResponseSignerPrivateKeyPEMPath)
|
||||
setEnvValue(t, sessionEventsRedisStreamEnvVar, customSessionEventsRedisStream)
|
||||
setEnvValue(t, clientEventsRedisStreamEnvVar, customClientEventsRedisStream)
|
||||
@@ -973,7 +1024,9 @@ func TestLoadFromEnvSessionCacheRedis(t *testing.T) {
|
||||
}
|
||||
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, tt.want, cfg.SessionCacheRedis)
|
||||
require.NotNil(t, tt.want)
|
||||
assert.Equal(t, tt.want.conn, cfg.Redis)
|
||||
assert.Equal(t, tt.want.sessionRedis, cfg.SessionCacheRedis)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1012,7 +1065,7 @@ func TestLoadFromEnvReplayRedis(t *testing.T) {
|
||||
{
|
||||
name: "custom replay redis config",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
replayRedisKeyPrefixEnvVar: customReplayRedisKeyPrefix,
|
||||
replayRedisReserveTimeoutEnvVar: customReplayRedisReserveTimeout,
|
||||
},
|
||||
@@ -1024,7 +1077,7 @@ func TestLoadFromEnvReplayRedis(t *testing.T) {
|
||||
{
|
||||
name: "empty replay redis key prefix",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
replayRedisKeyPrefixEnvVar: emptyReplayRedisKeyPrefix,
|
||||
},
|
||||
wantErr: replayRedisKeyPrefixEnvVar + " must not be empty",
|
||||
@@ -1032,7 +1085,7 @@ func TestLoadFromEnvReplayRedis(t *testing.T) {
|
||||
{
|
||||
name: "invalid replay redis reserve timeout",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
replayRedisReserveTimeoutEnvVar: invalidReplayRedisReserveTimeout,
|
||||
},
|
||||
wantErr: "parse " + replayRedisReserveTimeoutEnvVar,
|
||||
@@ -1096,7 +1149,7 @@ func TestLoadFromEnvSessionEventsRedis(t *testing.T) {
|
||||
{
|
||||
name: "custom session events redis config",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
sessionEventsRedisStreamEnvVar: customStream,
|
||||
sessionEventsRedisReadBlockTimeoutEnvVar: customReadBlockTimeout,
|
||||
},
|
||||
@@ -1108,14 +1161,14 @@ func TestLoadFromEnvSessionEventsRedis(t *testing.T) {
|
||||
{
|
||||
name: "missing session events redis stream",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
},
|
||||
wantErr: sessionEventsRedisStreamEnvVar + " must not be empty",
|
||||
},
|
||||
{
|
||||
name: "empty session events redis stream",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
sessionEventsRedisStreamEnvVar: emptyStream,
|
||||
},
|
||||
wantErr: sessionEventsRedisStreamEnvVar + " must not be empty",
|
||||
@@ -1123,7 +1176,7 @@ func TestLoadFromEnvSessionEventsRedis(t *testing.T) {
|
||||
{
|
||||
name: "invalid session events read block timeout",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
sessionEventsRedisStreamEnvVar: customStream,
|
||||
sessionEventsRedisReadBlockTimeoutEnvVar: invalidReadBlockTimeout,
|
||||
},
|
||||
@@ -1187,7 +1240,7 @@ func TestLoadFromEnvClientEventsRedis(t *testing.T) {
|
||||
{
|
||||
name: "custom client events redis config",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
clientEventsRedisStreamEnvVar: customStream,
|
||||
clientEventsRedisReadBlockTimeoutEnvVar: customReadBlockTimeout,
|
||||
},
|
||||
@@ -1199,14 +1252,14 @@ func TestLoadFromEnvClientEventsRedis(t *testing.T) {
|
||||
{
|
||||
name: "missing client events redis stream",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
},
|
||||
wantErr: clientEventsRedisStreamEnvVar + " must not be empty",
|
||||
},
|
||||
{
|
||||
name: "empty client events redis stream",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
clientEventsRedisStreamEnvVar: emptyStream,
|
||||
},
|
||||
wantErr: clientEventsRedisStreamEnvVar + " must not be empty",
|
||||
@@ -1214,7 +1267,7 @@ func TestLoadFromEnvClientEventsRedis(t *testing.T) {
|
||||
{
|
||||
name: "invalid client events read block timeout",
|
||||
envs: map[string]*string{
|
||||
sessionCacheRedisAddrEnvVar: customSessionCacheRedisAddr,
|
||||
gatewayRedisMasterAddrEnvVar: customSessionCacheRedisAddr,
|
||||
clientEventsRedisStreamEnvVar: customStream,
|
||||
clientEventsRedisReadBlockTimeoutEnvVar: invalidReadBlockTimeout,
|
||||
},
|
||||
@@ -1331,8 +1384,9 @@ func TestLoadFromEnvPublicHTTPAntiAbuse(t *testing.T) {
|
||||
tt := tt
|
||||
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
restoreEnvs(t, append(append(append(append(publicAntiAbuseEnvVars(), sessionCacheRedisAddrEnvVar), sessionEventsRedisEnvVars()...), clientEventsRedisEnvVars()...), responseSignerPrivateKeyPEMPathEnvVar)...)
|
||||
setEnvValue(t, sessionCacheRedisAddrEnvVar, requiredSessionCacheRedisAddr)
|
||||
restoreEnvs(t, append(append(append(append(publicAntiAbuseEnvVars(), gatewayRedisMasterAddrEnvVar), sessionEventsRedisEnvVars()...), clientEventsRedisEnvVars()...), responseSignerPrivateKeyPEMPathEnvVar)...)
|
||||
setEnvValue(t, gatewayRedisMasterAddrEnvVar, requiredSessionCacheRedisAddr)
|
||||
setEnvValue(t, gatewayRedisPasswordEnvVar, &defaultTestRedisPasswordValue)
|
||||
setEnvValue(t, sessionEventsRedisStreamEnvVar, requiredSessionEventsRedisStream)
|
||||
setEnvValue(t, clientEventsRedisStreamEnvVar, requiredClientEventsRedisStream)
|
||||
setEnvValue(t, responseSignerPrivateKeyPEMPathEnvVar, requiredResponseSignerPrivateKeyPEMPath)
|
||||
@@ -1444,13 +1498,15 @@ func operationalEnvVars() []string {
|
||||
|
||||
func sessionCacheRedisEnvVars() []string {
|
||||
return []string{
|
||||
sessionCacheRedisAddrEnvVar,
|
||||
sessionCacheRedisUsernameEnvVar,
|
||||
sessionCacheRedisPasswordEnvVar,
|
||||
sessionCacheRedisDBEnvVar,
|
||||
gatewayRedisMasterAddrEnvVar,
|
||||
gatewayRedisReplicaAddrsEnvVar,
|
||||
gatewayRedisPasswordEnvVar,
|
||||
gatewayRedisDBEnvVar,
|
||||
gatewayRedisOpTimeoutEnvVar,
|
||||
gatewayRedisTLSEnabledEnvVar,
|
||||
gatewayRedisUsernameEnvVar,
|
||||
sessionCacheRedisKeyPrefixEnvVar,
|
||||
sessionCacheRedisLookupTimeoutEnvVar,
|
||||
sessionCacheRedisTLSEnabledEnvVar,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user