Files
goauto/server/config/extend_test.go
T

58 lines
2.0 KiB
Go

package config
import (
"testing"
sdkconfig "github.com/go-admin-team/go-admin-core/sdk/config"
)
func TestApplyEnvironment(t *testing.T) {
originalDefault := *sdkconfig.DatabaseConfig
originalDatabases := sdkconfig.DatabasesConfig
originalApplication := *sdkconfig.ApplicationConfig
t.Cleanup(func() {
*sdkconfig.DatabaseConfig = originalDefault
sdkconfig.DatabasesConfig = originalDatabases
*sdkconfig.ApplicationConfig = originalApplication
})
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")
t.Setenv("GOAUTO_SERVER_PORT", "18000")
ApplyEnvironment()
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")
}
if sdkconfig.ApplicationConfig.Port != 18000 {
t.Fatalf("application port = %d, want 18000", sdkconfig.ApplicationConfig.Port)
}
}
func TestApplyEnvironmentIgnoresEmptyDatabaseAndInvalidPort(t *testing.T) {
original := *sdkconfig.DatabaseConfig
originalApplication := *sdkconfig.ApplicationConfig
t.Cleanup(func() {
*sdkconfig.DatabaseConfig = original
*sdkconfig.ApplicationConfig = originalApplication
})
sdkconfig.DatabaseConfig.Driver = "sqlite3"
sdkconfig.DatabaseConfig.Source = "local.db"
sdkconfig.ApplicationConfig.Port = 8000
t.Setenv("GOAUTO_DB_DSN", "")
t.Setenv("GOAUTO_SERVER_PORT", "70000")
ApplyEnvironment()
if sdkconfig.DatabaseConfig.Driver != "sqlite3" || sdkconfig.DatabaseConfig.Source != "local.db" {
t.Fatal("empty environment unexpectedly changed database config")
}
if sdkconfig.ApplicationConfig.Port != 8000 {
t.Fatal("invalid environment unexpectedly changed application port")
}
}