package config import ( "testing" sdkconfig "github.com/go-admin-team/go-admin-core/sdk/config" ) func TestApplyDatabaseEnvironment(t *testing.T) { originalDefault := *sdkconfig.DatabaseConfig originalDatabases := sdkconfig.DatabasesConfig t.Cleanup(func() { *sdkconfig.DatabaseConfig = originalDefault sdkconfig.DatabasesConfig = originalDatabases }) sdkconfig.DatabasesConfig = map[string]*sdkconfig.Database{"*": {Driver: "sqlite3", Source: "old.db"}} t.Setenv("GOAUTO_DB_DSN", "user:secret@tcp(127.0.0.1:3306)/goauto") t.Setenv("GOAUTO_DB_DRIVER", "mysql") ApplyDatabaseEnvironment() if sdkconfig.DatabaseConfig.Driver != "mysql" || sdkconfig.DatabaseConfig.Source == "" { t.Fatal("default database was not overridden") } if database := sdkconfig.DatabasesConfig["*"]; database.Driver != "mysql" || database.Source != sdkconfig.DatabaseConfig.Source { t.Fatal("host database was not overridden") } } func TestApplyDatabaseEnvironmentDoesNothingWithoutDSN(t *testing.T) { original := *sdkconfig.DatabaseConfig t.Cleanup(func() { *sdkconfig.DatabaseConfig = original }) sdkconfig.DatabaseConfig.Driver = "sqlite3" sdkconfig.DatabaseConfig.Source = "local.db" t.Setenv("GOAUTO_DB_DSN", "") ApplyDatabaseEnvironment() if sdkconfig.DatabaseConfig.Driver != "sqlite3" || sdkconfig.DatabaseConfig.Source != "local.db" { t.Fatal("empty environment unexpectedly changed database config") } }