62 lines
1.7 KiB
Go
62 lines
1.7 KiB
Go
package testutils
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
// SetupTestEnvironment konfiguriert die Umgebung für Tests
|
|
// Diese Funktion setzt ENVIRONMENT=test und stellt sicher, dass nach dem Test
|
|
// die ursprüngliche Umgebung wiederhergestellt wird
|
|
func SetupTestEnvironment(t *testing.T) {
|
|
// Sicherstellen, dass ENVIRONMENT auf "test" gesetzt ist
|
|
originalEnv := os.Getenv("ENVIRONMENT")
|
|
os.Setenv("ENVIRONMENT", "test")
|
|
|
|
// Cleanup-Funktion registrieren
|
|
t.Cleanup(func() {
|
|
if originalEnv != "" {
|
|
os.Setenv("ENVIRONMENT", originalEnv)
|
|
} else {
|
|
os.Unsetenv("ENVIRONMENT")
|
|
}
|
|
})
|
|
}
|
|
|
|
// SetupTestEnvironmentWithConfig konfiguriert die Test-Umgebung mit spezifischen Werten
|
|
func SetupTestEnvironmentWithConfig(t *testing.T, envVars map[string]string) {
|
|
// Ursprüngliche Werte sichern
|
|
originalVars := make(map[string]string)
|
|
for key := range envVars {
|
|
originalVars[key] = os.Getenv(key)
|
|
}
|
|
|
|
// Sicherstellen, dass ENVIRONMENT auf "test" gesetzt ist
|
|
envVars["ENVIRONMENT"] = "test"
|
|
|
|
// Test-Umgebungsvariablen setzen
|
|
for key, value := range envVars {
|
|
os.Setenv(key, value)
|
|
}
|
|
|
|
// Cleanup-Funktion registrieren
|
|
t.Cleanup(func() {
|
|
for key, originalValue := range originalVars {
|
|
if originalValue != "" {
|
|
os.Setenv(key, originalValue)
|
|
} else {
|
|
os.Unsetenv(key)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
// EnsureTestEnvironment ist eine einfache Prüfung, ob die Test-Umgebung korrekt ist
|
|
// Kann in Tests verwendet werden um sicherzustellen, dass ENVIRONMENT=test gesetzt ist
|
|
func EnsureTestEnvironment(t *testing.T) {
|
|
if os.Getenv("ENVIRONMENT") != "test" {
|
|
t.Errorf("ENVIRONMENT sollte 'test' sein, ist aber '%s'. Vergessen Sie SetupTestEnvironment() aufzurufen?",
|
|
os.Getenv("ENVIRONMENT"))
|
|
}
|
|
}
|