69 lines
1.9 KiB
Go
69 lines
1.9 KiB
Go
package config
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestAllConfigs(t *testing.T) {
|
|
SingleStackTest(t, "dev", StackConfiguration{
|
|
AllowFreshAdminGeneration: true,
|
|
AdminEmails: []string{"admin@admin.invalid"},
|
|
AdminHmacEnv: "ADMIN_HMAC_ENV",
|
|
UserHmacEnv: "USER_HMAC_ENV",
|
|
AuthedRateLimitConfig: "ratelimit.auth.json",
|
|
UnauthedRateLimitConfig: "ratelimit.unauth.json",
|
|
})
|
|
}
|
|
|
|
func SingleStackTest(t *testing.T, stack string, expected StackConfiguration) {
|
|
configInternal = StackConfiguration{}
|
|
|
|
if Config().ConfigLoaded {
|
|
t.Errorf("Config.ConfigLoaded should be false before any processing")
|
|
}
|
|
|
|
if len(Config().AdminEmails) > 0 ||
|
|
Config().AdminHmacEnv != "" ||
|
|
Config().UserHmacEnv != "" ||
|
|
Config().AllowFreshAdminGeneration ||
|
|
Config().AuthedRateLimitConfig != "" ||
|
|
Config().UnauthedRateLimitConfig != "" { // Extend this IF for any other config values
|
|
t.Errorf("Config already has values before loading")
|
|
}
|
|
|
|
Environment = stack
|
|
LoadConfig()
|
|
|
|
if !Config().ConfigLoaded {
|
|
t.Errorf("Config was not set to loaded")
|
|
}
|
|
|
|
// Finally test values
|
|
if Config().AllowFreshAdminGeneration != expected.AllowFreshAdminGeneration {
|
|
t.Errorf("AllowFreshAdminGeneration value not set properly")
|
|
}
|
|
|
|
for i, email := range Config().AdminEmails {
|
|
if expected.AdminEmails[i] != email {
|
|
t.Errorf("AdminEmails value not set properly, expected %v at %v, was %v", expected.AdminEmails[i], i, email)
|
|
}
|
|
}
|
|
|
|
if Config().AdminHmacEnv != expected.AdminHmacEnv {
|
|
t.Errorf("AdminHmacEnv value not set properly")
|
|
}
|
|
|
|
if Config().UserHmacEnv != expected.UserHmacEnv {
|
|
t.Errorf("UserHmacEnv value not set properly")
|
|
}
|
|
|
|
if Config().AuthedRateLimitConfig != expected.AuthedRateLimitConfig {
|
|
t.Errorf("AuthedRateLimitConfig value not set properly")
|
|
}
|
|
|
|
if Config().UnauthedRateLimitConfig != expected.UnauthedRateLimitConfig {
|
|
t.Errorf("UnauthedRateLimitConfig value not set properly")
|
|
}
|
|
|
|
}
|