package config import ( "testing" "time" ) func TestLoadDefaults(t *testing.T) { t.Setenv("ARIADNE_ENVIRONMENT", "") t.Setenv("ARIADNE_HTTP_ADDRESS", "") t.Setenv("ARIADNE_DATABASE_URL", "") t.Setenv("ARIADNE_DATABASE_IDENTITY_URL", "") t.Setenv("ARIADNE_DATABASE_MIGRATION_URL", "") t.Setenv("ARIADNE_DATABASE_RUNTIME_ROLE", "") t.Setenv("ARIADNE_DATABASE_IDENTITY_ROLE", "") t.Setenv("ARIADNE_MIGRATION_LOCK_TIMEOUT", "") t.Setenv("ARIADNE_IOP_ENDPOINT", "") t.Setenv("ARIADNE_SHUTDOWN_TIMEOUT", "") config, err := Load() if err != nil { t.Fatalf("Load() error = %v", err) } if config.Environment != "development" { t.Fatalf("Environment = %q, want development", config.Environment) } if config.HTTPAddress != ":8080" { t.Fatalf("HTTPAddress = %q, want :8080", config.HTTPAddress) } if config.ShutdownTimeout != 10*time.Second { t.Fatalf("ShutdownTimeout = %v, want 10s", config.ShutdownTimeout) } if config.MigrationLockTimeout != 30*time.Second { t.Fatalf("MigrationLockTimeout = %v, want 30s", config.MigrationLockTimeout) } } func TestLoadRejectsInvalidShutdownTimeout(t *testing.T) { t.Setenv("ARIADNE_SHUTDOWN_TIMEOUT", "later") if _, err := Load(); err == nil { t.Fatal("Load() expected an error") } } func TestLoadRejectsInvalidMigrationLockTimeout(t *testing.T) { t.Setenv("ARIADNE_MIGRATION_LOCK_TIMEOUT", "0s") if _, err := Load(); err == nil { t.Fatal("Load() expected an error") } }