73 lines
2.0 KiB
Go
73 lines
2.0 KiB
Go
package app
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
)
|
|
|
|
func TestLoadSettingsDefaults(t *testing.T) {
|
|
t.Setenv("XDG_CONFIG_HOME", t.TempDir())
|
|
st, path, err := loadSettings()
|
|
if err != nil {
|
|
t.Fatalf("loadSettings: %v", err)
|
|
}
|
|
if filepath.Base(path) != "settings.json" {
|
|
t.Fatalf("settings path = %q", path)
|
|
}
|
|
if !st.AutoSummary.Enabled {
|
|
t.Fatal("auto-summary should default enabled")
|
|
}
|
|
if st.AutoSummary.Provider != "codex" {
|
|
t.Fatalf("provider = %q want codex", st.AutoSummary.Provider)
|
|
}
|
|
if st.AutoSummary.Cadence != "1m" {
|
|
t.Fatalf("cadence = %q want 1m", st.AutoSummary.Cadence)
|
|
}
|
|
if got := st.AutoSummary.modelFor("codex"); got != "gpt-5.4-mini" {
|
|
t.Fatalf("codex model = %q", got)
|
|
}
|
|
if got := st.AutoSummary.modelFor("opencode"); got != "opencode-go/minimax-m2.7" {
|
|
t.Fatalf("opencode model = %q", got)
|
|
}
|
|
}
|
|
|
|
func TestSettingsCloneDoesNotShareModelMap(t *testing.T) {
|
|
st := defaultSettings()
|
|
cp := st.clone()
|
|
cp.AutoSummary.Models["codex"] = "changed"
|
|
if st.AutoSummary.Models["codex"] == "changed" {
|
|
t.Fatal("clone shared Models map with original")
|
|
}
|
|
a := st.AutoSummary.clone()
|
|
a.Models["opencode"] = "changed"
|
|
if st.AutoSummary.Models["opencode"] == "changed" {
|
|
t.Fatal("autoSummarySettings clone shared Models map with original")
|
|
}
|
|
}
|
|
|
|
func TestSaveAndLoadSettings(t *testing.T) {
|
|
dir := t.TempDir()
|
|
t.Setenv("XDG_CONFIG_HOME", dir)
|
|
st := defaultSettings()
|
|
st.AutoSummary.Provider = "opencode"
|
|
st.AutoSummary.Models["opencode"] = "minimax/test"
|
|
path := filepath.Join(dir, "patterm", "settings.json")
|
|
if err := saveSettings(path, st); err != nil {
|
|
t.Fatalf("saveSettings: %v", err)
|
|
}
|
|
if _, err := os.Stat(path); err != nil {
|
|
t.Fatalf("settings file missing: %v", err)
|
|
}
|
|
got, _, err := loadSettings()
|
|
if err != nil {
|
|
t.Fatalf("loadSettings: %v", err)
|
|
}
|
|
if got.AutoSummary.Provider != "opencode" {
|
|
t.Fatalf("provider = %q", got.AutoSummary.Provider)
|
|
}
|
|
if got.AutoSummary.modelFor("opencode") != "minimax/test" {
|
|
t.Fatalf("opencode model = %q", got.AutoSummary.modelFor("opencode"))
|
|
}
|
|
}
|