45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"path/filepath"
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
func TestDefaultPaths(t *testing.T) {
|
|
paths := DefaultPaths(t.TempDir())
|
|
if runtime.GOOS == "linux" {
|
|
if paths.Install != "/scert" || paths.Certificate != "/ssl" {
|
|
t.Fatalf("Linux 默认路径不正确:%+v", paths)
|
|
}
|
|
return
|
|
}
|
|
if filepath.Base(paths.Install) != "Scert" || filepath.Base(paths.Certificate) != "ssl" {
|
|
t.Fatalf("Windows 默认路径不正确:%+v", paths)
|
|
}
|
|
}
|
|
|
|
func TestSaveAndLoad(t *testing.T) {
|
|
dir := t.TempDir()
|
|
cfg := Default(dir)
|
|
path := filepath.Join(dir, "config", "scert.json")
|
|
if err := cfg.Save(path); err != nil {
|
|
t.Fatalf("保存配置失败:%v", err)
|
|
}
|
|
loaded, err := Load(path)
|
|
if err != nil {
|
|
t.Fatalf("读取配置失败:%v", err)
|
|
}
|
|
if loaded.Version != cfg.Version || loaded.Database.Driver != "sqlite" {
|
|
t.Fatalf("读取配置内容不一致:%+v", loaded)
|
|
}
|
|
}
|
|
|
|
func TestValidateRejectsInvalidPort(t *testing.T) {
|
|
cfg := Default(t.TempDir())
|
|
cfg.Server.Port = 70000
|
|
if err := cfg.Validate(); err == nil {
|
|
t.Fatal("无效端口未被拒绝")
|
|
}
|
|
}
|