33 lines
1.4 KiB
Go
33 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestListenAddressDefaultsToLoopbackAndSupportsExplicitBinding(t *testing.T) {
|
|
if got := listenAddress(func(string) string { return "" }); got != "127.0.0.1:8080" {
|
|
t.Fatalf("listenAddress(defaults) = %q", got)
|
|
}
|
|
values := map[string]string{"GO_BACKEND_HOST": "0.0.0.0", "GO_BACKEND_PORT": "9080"}
|
|
if got := listenAddress(func(name string) string { return values[name] }); got != "0.0.0.0:9080" {
|
|
t.Fatalf("listenAddress(explicit) = %q", got)
|
|
}
|
|
}
|
|
|
|
func TestRuntimeGetenvLoadsWhitelistedSettingsAndPreservesProcessPrecedence(t *testing.T) {
|
|
path := filepath.Join(t.TempDir(), ".env.local")
|
|
if err := os.WriteFile(path, []byte("IMAGE_GENERATE_ENGINE=evolink\nEVOLINK_API_KEY=file-secret\nDATABASE_URL=postgres://must-not-load\n"), 0o600); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
process := map[string]string{"ZHINIAN_SETTINGS_FILE": path, "EVOLINK_API_KEY": "process-secret", "ZHINIAN_DATA_BACKEND": "local"}
|
|
getenv, err := runtimeGetenv(func(name string) string { return process[name] })
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if getenv("IMAGE_GENERATE_ENGINE") != "evolink" || getenv("EVOLINK_API_KEY") != "process-secret" || getenv("DATABASE_URL") != "" || getenv("ZHINIAN_DATA_BACKEND") != "local" {
|
|
t.Fatalf("loaded engine=%q key=%q database=%q backend=%q", getenv("IMAGE_GENERATE_ENGINE"), getenv("EVOLINK_API_KEY"), getenv("DATABASE_URL"), getenv("ZHINIAN_DATA_BACKEND"))
|
|
}
|
|
}
|