mirror of
https://git.fightbot.fun/hxuanyu/BingPaper.git
synced 2026-02-15 07:29:33 +08:00
68 lines
1.5 KiB
Go
68 lines
1.5 KiB
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestDefaultConfig(t *testing.T) {
|
|
err := Init("")
|
|
if err != nil {
|
|
t.Fatalf("Failed to init config: %v", err)
|
|
}
|
|
|
|
cfg := GetConfig()
|
|
if cfg.Server.Port != 8080 {
|
|
t.Errorf("Expected port 8080, got %d", cfg.Server.Port)
|
|
}
|
|
|
|
if cfg.DB.Type != "sqlite" {
|
|
t.Errorf("Expected DB type sqlite, got %s", cfg.DB.Type)
|
|
}
|
|
}
|
|
|
|
func TestDebugFunctions(t *testing.T) {
|
|
// 设置一个环境变量
|
|
os.Setenv("BINGPAPER_SERVER_PORT", "9999")
|
|
defer os.Unsetenv("BINGPAPER_SERVER_PORT")
|
|
|
|
err := Init("")
|
|
if err != nil {
|
|
t.Fatalf("Failed to init config: %v", err)
|
|
}
|
|
|
|
settings := GetAllSettings()
|
|
serverCfg, ok := settings["server"].(map[string]interface{})
|
|
if !ok {
|
|
t.Fatalf("Expected server config map, got %v", settings["server"])
|
|
}
|
|
|
|
// Viper numbers in AllSettings are often int
|
|
portValue := serverCfg["port"]
|
|
// 允许不同的数字类型,因为 viper 内部实现可能变化
|
|
portStr := fmt.Sprintf("%v", portValue)
|
|
if portStr != "9999" {
|
|
t.Errorf("Expected port 9999 in settings, got %v (%T)", portValue, portValue)
|
|
}
|
|
|
|
overrides := GetEnvOverrides()
|
|
found := false
|
|
for _, o := range overrides {
|
|
if strings.Contains(o, "server.port") && strings.Contains(o, "9999") {
|
|
found = true
|
|
break
|
|
}
|
|
}
|
|
if !found {
|
|
t.Errorf("Expected server.port override in %v", overrides)
|
|
}
|
|
|
|
// 验证格式化输出
|
|
formatted := GetFormattedSettings()
|
|
if !strings.Contains(formatted, "server.port: 9999") {
|
|
t.Errorf("Expected formatted settings to contain server.port: 9999, got %s", formatted)
|
|
}
|
|
}
|