fix(test): fix configuration for e2e tests and improve en var loading for gracefull stop on error

This commit is contained in:
Benjamin
2025-11-23 11:33:50 +01:00
parent e885c63f92
commit 779aada760
2 changed files with 40 additions and 10 deletions

View File

@@ -91,12 +91,24 @@ type ChecksumConfig struct {
func Load() (*Config, error) {
config := &Config{}
baseURL := mustGetEnv("ACKIFY_BASE_URL")
baseURL, err := getRequiredEnv("ACKIFY_BASE_URL")
if err != nil {
return nil, err
}
config.App.BaseURL = baseURL
config.App.Organisation = mustGetEnv("ACKIFY_ORGANISATION")
organisation, err := getRequiredEnv("ACKIFY_ORGANISATION")
if err != nil {
return nil, err
}
config.App.Organisation = organisation
config.App.SecureCookies = strings.HasPrefix(strings.ToLower(baseURL), "https://")
config.Database.DSN = mustGetEnv("ACKIFY_DB_DSN")
dsn, err := getRequiredEnv("ACKIFY_DB_DSN")
if err != nil {
return nil, err
}
config.Database.DSN = dsn
// OAuth configuration - now OPTIONAL
config.OAuth.ClientID = getEnv("ACKIFY_OAUTH_CLIENT_ID", "")
@@ -139,9 +151,22 @@ func Load() (*Config, error) {
config.OAuth.Scopes = []string{"read_user", "profile"}
default:
// Custom OAuth provider - require URLs
config.OAuth.AuthURL = mustGetEnv("ACKIFY_OAUTH_AUTH_URL")
config.OAuth.TokenURL = mustGetEnv("ACKIFY_OAUTH_TOKEN_URL")
config.OAuth.UserInfoURL = mustGetEnv("ACKIFY_OAUTH_USERINFO_URL")
authURL, err := getRequiredEnv("ACKIFY_OAUTH_AUTH_URL")
if err != nil {
return nil, fmt.Errorf("OAuth enabled with custom provider: %w", err)
}
tokenURL, err := getRequiredEnv("ACKIFY_OAUTH_TOKEN_URL")
if err != nil {
return nil, fmt.Errorf("OAuth enabled with custom provider: %w", err)
}
userInfoURL, err := getRequiredEnv("ACKIFY_OAUTH_USERINFO_URL")
if err != nil {
return nil, fmt.Errorf("OAuth enabled with custom provider: %w", err)
}
config.OAuth.AuthURL = authURL
config.OAuth.TokenURL = tokenURL
config.OAuth.UserInfoURL = userInfoURL
config.OAuth.LogoutURL = getEnv("ACKIFY_OAUTH_LOGOUT_URL", "")
scopesStr := getEnv("ACKIFY_OAUTH_SCOPES", "openid,email,profile")
config.OAuth.Scopes = strings.Split(scopesStr, ",")
@@ -221,12 +246,12 @@ func Load() (*Config, error) {
return config, nil
}
func mustGetEnv(key string) string {
func getRequiredEnv(key string) (string, error) {
value := strings.TrimSpace(os.Getenv(key))
if value == "" {
panic(fmt.Sprintf("missing required environment variable: %s", key))
return "", fmt.Errorf("missing required environment variable: %s", key)
}
return value
return value, nil
}
func getEnv(key, defaultValue string) string {

View File

@@ -27,9 +27,14 @@ services:
ACKIFY_BASE_URL: "http://localhost:8080"
ACKIFY_ORGANISATION: "Ackify Test"
ACKIFY_DB_DSN: "postgres://postgres:testpassword@ackify-db:5432/ackify_test?sslmode=disable"
ACKIFY_OAUTH_PROVIDER: "github"
ACKIFY_AUTH_OAUTH_ENABLED: "true"
ACKIFY_AUTH_MAGICLINK_ENABLED: "true"
ACKIFY_OAUTH_PROVIDER: "custom"
ACKIFY_OAUTH_CLIENT_ID: "test_client_id"
ACKIFY_OAUTH_CLIENT_SECRET: "test_client_secret"
ACKIFY_OAUTH_AUTH_URL: "https://auth.url.com/auth"
ACKIFY_OAUTH_TOKEN_URL: "https://auth.url.com/token"
ACKIFY_OAUTH_USERINFO_URL: "https://auth.url.com/userinfo"
ACKIFY_OAUTH_COOKIE_SECRET: "dGVzdF9jb29raWVfc2VjcmV0X2Zvcl90ZXN0aW5nXzEyMzQ1Njc4OTA="
ACKIFY_ED25519_PRIVATE_KEY: "kKjNo0cTUOdXcamyxYCcmGfUm7zXzeI8T2jaLEjvbcpA0IIO7HbR3ANBlUlqlWuV3D+RjDT+8p5o37n98+Wu5A=="
ACKIFY_LISTEN_ADDR: ":8080"