Files
2026-09-21 16:46:55 +08:00

51 lines
1008 B
Go

package config
import (
"os"
"path/filepath"
"testing"
)
func TestResolvePathsMakesLogAbsolute(t *testing.T) {
path := writeTempConfig(t, `
local_auth:
username: root
password: x
tunnel:
url: "https://example.invalid/?token=t"
remote:
host: mysql
username: root
password: x
options:
log_file: logs/tunnel.log
`)
cfg, err := Load(path, Overrides{})
if err != nil {
t.Fatal(err)
}
cfg.ResolvePaths()
want := filepath.Join(filepath.Dir(path), "logs", "tunnel.log")
if cfg.LogFile != want {
t.Fatalf("LogFile=%s want %s", cfg.LogFile, want)
}
}
func TestResolveConfigPathPrefersExisting(t *testing.T) {
dir := t.TempDir()
p := filepath.Join(dir, "config.yaml")
if err := os.WriteFile(p, []byte("x"), 0o600); err != nil {
t.Fatal(err)
}
got, err := ResolveConfigPath(p)
if err != nil {
t.Fatal(err)
}
if got != p && got != filepath.Clean(p) {
// Abs may change separators on Windows
if filepath.Clean(got) != filepath.Clean(p) {
t.Fatalf("got %s", got)
}
}
}