summaryrefslogtreecommitdiff
path: root/internal/config/config_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/config/config_test.go')
-rw-r--r--internal/config/config_test.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/internal/config/config_test.go b/internal/config/config_test.go
index 766b856..2bba2c4 100644
--- a/internal/config/config_test.go
+++ b/internal/config/config_test.go
@@ -1,6 +1,8 @@
package config
import (
+ "os"
+ "path/filepath"
"testing"
)
@@ -22,3 +24,32 @@ func TestDefault_ValidHome_ReturnsConfig(t *testing.T) {
t.Errorf("DataDir = %q, want /tmp/testhome/.claudomator", cfg.DataDir)
}
}
+
+func TestLoadFile_OverridesDefaults(t *testing.T) {
+ dir := t.TempDir()
+ path := filepath.Join(dir, "config.toml")
+ if err := os.WriteFile(path, []byte("server_addr = \":9191\"\n"), 0600); err != nil {
+ t.Fatal(err)
+ }
+ t.Setenv("HOME", dir)
+
+ cfg, err := LoadFile(path)
+ if err != nil {
+ t.Fatalf("unexpected error: %v", err)
+ }
+ if cfg.ServerAddr != ":9191" {
+ t.Errorf("ServerAddr = %q, want :9191", cfg.ServerAddr)
+ }
+ // Unset fields retain defaults.
+ if cfg.MaxConcurrent != 3 {
+ t.Errorf("MaxConcurrent = %d, want 3", cfg.MaxConcurrent)
+ }
+}
+
+func TestLoadFile_MissingFile_ReturnsError(t *testing.T) {
+ t.Setenv("HOME", t.TempDir())
+ _, err := LoadFile("/nonexistent/config.toml")
+ if err == nil {
+ t.Fatal("expected error for missing file, got nil")
+ }
+}