settings_store_test.go RawHistoryFolder
1package agent
2
3import "testing"
4
5func TestConfigSettingsStorePersistsFuzzySkillSuggest(t *testing.T) {
6 t.Setenv("ZOT_HOME", t.TempDir())
7 if err := SaveConfig(Config{Theme: "dark"}); err != nil {
8 t.Fatal(err)
9 }
10 cfg, err := LoadConfig()
11 if err != nil {
12 t.Fatal(err)
13 }
14 if cfg.FuzzySkillSuggest != nil {
15 t.Fatal("missing preference should remain unset")
16 }
17 for _, enabled := range []bool{true, false} {
18 if err := (configSettingsStore{}).SetFuzzySkillSuggest(enabled); err != nil {
19 t.Fatal(err)
20 }
21 cfg, err := LoadConfig()
22 if err != nil {
23 t.Fatal(err)
24 }
25 if cfg.FuzzySkillSuggest == nil || *cfg.FuzzySkillSuggest != enabled {
26 t.Fatal("preference not persisted")
27 }
28 if cfg.Theme != "dark" {
29 t.Fatal("unrelated preference changed")
30 }
31 }
32}
33
34func TestConfigSettingsStorePersistsShowInstructionsAtStartup(t *testing.T) {
35 t.Setenv("ZOT_HOME", t.TempDir())
36 if err := SaveConfig(Config{Theme: "dark"}); err != nil {
37 t.Fatal(err)
38 }
39
40 if err := (configSettingsStore{}).SetShowInstructionsAtStartup(true); err != nil {
41 t.Fatal(err)
42 }
43 cfg, err := LoadConfig()
44 if err != nil {
45 t.Fatal(err)
46 }
47 if cfg.ShowInstructionsAtStartup == nil || !*cfg.ShowInstructionsAtStartup {
48 t.Fatal("show_instructions_at_startup was not persisted as enabled")
49 }
50 if cfg.Theme != "dark" {
51 t.Fatalf("unrelated config changed: theme = %q, want dark", cfg.Theme)
52 }
53}
54
55func TestConfigSettingsStorePersistsOpenRouterServerTools(t *testing.T) {
56 t.Setenv("ZOT_HOME", t.TempDir())
57 if err := SaveConfig(Config{Theme: "dark"}); err != nil {
58 t.Fatal(err)
59 }
60
61 if err := (configSettingsStore{}).SetOpenRouterServerTools(false); err != nil {
62 t.Fatal(err)
63 }
64 cfg, err := LoadConfig()
65 if err != nil {
66 t.Fatal(err)
67 }
68 if cfg.OpenRouterServerToolsEnabled == nil || *cfg.OpenRouterServerToolsEnabled {
69 t.Fatal("openrouter_server_tools_enabled was not persisted as disabled")
70 }
71 if cfg.Theme != "dark" {
72 t.Fatalf("unrelated config changed: theme = %q, want dark", cfg.Theme)
73 }
74}
75
76func TestOpenRouterServerToolsEnabledDefaultsOff(t *testing.T) {
77 t.Setenv("ZOT_HOME", t.TempDir())
78 if err := SaveConfig(Config{}); err != nil {
79 t.Fatal(err)
80 }
81 if OpenRouterServerToolsEnabled() {
82 t.Fatal("nil preference should default to disabled")
83 }
84}
85
86func TestConfigSettingsStorePersistsJailByDefault(t *testing.T) {
87 t.Setenv("ZOT_HOME", t.TempDir())
88 if err := SaveConfig(Config{Theme: "dark"}); err != nil {
89 t.Fatal(err)
90 }
91
92 if err := (configSettingsStore{}).SetJailByDefault(true); err != nil {
93 t.Fatal(err)
94 }
95 cfg, err := LoadConfig()
96 if err != nil {
97 t.Fatal(err)
98 }
99 if cfg.JailByDefault == nil || !*cfg.JailByDefault {
100 t.Fatal("jail_by_default was not persisted as enabled")
101 }
102 if cfg.Theme != "dark" {
103 t.Fatalf("unrelated config changed: theme = %q, want dark", cfg.Theme)
104 }
105}
106
107func TestConfigSettingsStorePersistsAutoCompactThreshold(t *testing.T) {
108 t.Setenv("ZOT_HOME", t.TempDir())
109 if err := SaveConfig(Config{Theme: "dark"}); err != nil {
110 t.Fatal(err)
111 }
112
113 if err := (configSettingsStore{}).SetAutoCompactThreshold(70); err != nil {
114 t.Fatal(err)
115 }
116 cfg, err := LoadConfig()
117 if err != nil {
118 t.Fatal(err)
119 }
120 if cfg.AutoCompactThreshold == nil || *cfg.AutoCompactThreshold != 70 {
121 t.Fatalf("auto_compact_threshold = %v, want 70", cfg.AutoCompactThreshold)
122 }
123 if cfg.Theme != "dark" {
124 t.Fatalf("unrelated config changed: theme = %q, want dark", cfg.Theme)
125 }
126}