Add auto-summary settings
This commit is contained in:
69
internal/app/settings_test.go
Normal file
69
internal/app/settings_test.go
Normal file
@@ -0,0 +1,69 @@
|
||||
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 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"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user