43 lines
1.4 KiB
Go
43 lines
1.4 KiB
Go
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")
|
|
}
|
|
}
|