Files
goauto/server/config/extend_test.go
T

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")
}
}