Set Test environment in tests

This commit is contained in:
2025-08-10 21:01:18 +02:00
parent 1880051165
commit 84158683cd
10 changed files with 346 additions and 18 deletions
+11 -6
View File
@@ -13,7 +13,8 @@ type Config struct {
ServerPort string
// Database Konfiguration
DatabaseURL string
DatabaseURL string
DatabaseType string
// Logging Konfiguration
DebugMode bool
@@ -26,11 +27,12 @@ type Config struct {
// defaultConfig gibt die Standard-Konfiguration zurück
func defaultConfig() *Config {
return &Config{
ServerPort: "8180",
DatabaseURL: "",
DebugMode: false,
LogLevel: "INFO",
Environment: "production",
ServerPort: "8180",
DatabaseURL: "",
DatabaseType: "mysql",
DebugMode: false,
LogLevel: "INFO",
Environment: "production",
}
}
@@ -53,6 +55,9 @@ func LoadConfig() *Config {
if dbURL := os.Getenv("DATABASE_URL"); dbURL != "" {
config.DatabaseURL = dbURL
}
if dbType := os.Getenv("DATABASE_TYPE"); dbType != "" {
config.DatabaseType = strings.ToLower(dbType)
}
// Debug Mode
if debug := os.Getenv("DEBUG"); debug != "" {
+18
View File
@@ -5,7 +5,21 @@ import (
"testing"
)
// setupTestEnvironment setzt ENVIRONMENT=test für Tests und stellt es nach dem Test wieder her
func setupTestEnvironment(t *testing.T) {
original := os.Getenv("ENVIRONMENT")
os.Setenv("ENVIRONMENT", "test")
t.Cleanup(func() {
if original != "" {
os.Setenv("ENVIRONMENT", original)
} else {
os.Unsetenv("ENVIRONMENT")
}
})
}
func TestLoadEnvFile(t *testing.T) {
setupTestEnvironment(t)
// Test-Datei erstellen
envContent := `# Test .env file
DEBUG=true
@@ -97,6 +111,8 @@ QUOTED_VALUE='single quotes'
}
func TestEnvVariablesPrecedence(t *testing.T) {
setupTestEnvironment(t)
// Test, dass bereits gesetzte Umgebungsvariablen Vorrang haben
envContent := `DEBUG=false
LOG_LEVEL=ERROR`
@@ -130,6 +146,8 @@ LOG_LEVEL=ERROR`
}
func TestLoadConfigWithEnvFile(t *testing.T) {
setupTestEnvironment(t)
// Test-Konfiguration mit .env-Datei
envContent := `ENVIRONMENT=development
DEBUG=true