Files
NianAIGC/backend/cmd/zhinian-api/main_test.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"))
}
}