File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ const (
1717 CurrentViewerURLFile = "current_viewer_url"
1818 CurrentAgentFile = "current_agent"
1919 CurrentSessionExpiryFile = "current_session_expiry"
20+ EnvConfigDir = "NOTTE_CONFIG_DIR"
2021 EnvAPIURL = "NOTTE_API_URL"
2122 EnvConsoleURL = "NOTTE_CONSOLE_URL"
2223 EnvSessionID = "NOTTE_SESSION_ID"
@@ -45,6 +46,9 @@ func Dir() (string, error) {
4546 if testConfigDir != "" {
4647 return filepath .Join (testConfigDir , ConfigDirName ), nil
4748 }
49+ if envDir := os .Getenv (EnvConfigDir ); envDir != "" {
50+ return filepath .Join (envDir , ConfigDirName ), nil
51+ }
4852 homeDir , err := os .UserHomeDir ()
4953 if err != nil {
5054 return "" , err
Original file line number Diff line number Diff line change @@ -42,6 +42,41 @@ func TestLoadConfig_WithValues(t *testing.T) {
4242 }
4343}
4444
45+ func TestDir_EnvOverride (t * testing.T ) {
46+ customDir := t .TempDir ()
47+ t .Setenv ("NOTTE_CONFIG_DIR" , customDir )
48+
49+ dir , err := Dir ()
50+ if err != nil {
51+ t .Fatalf ("unexpected error: %v" , err )
52+ }
53+
54+ expected := filepath .Join (customDir , ConfigDirName )
55+ if dir != expected {
56+ t .Errorf ("expected %q, got %q" , expected , dir )
57+ }
58+ }
59+
60+ func TestDir_DefaultUsesHome (t * testing.T ) {
61+ // Ensure env var is not set
62+ t .Setenv ("NOTTE_CONFIG_DIR" , "" )
63+
64+ dir , err := Dir ()
65+ if err != nil {
66+ t .Fatalf ("unexpected error: %v" , err )
67+ }
68+
69+ homeDir , err := os .UserHomeDir ()
70+ if err != nil {
71+ t .Fatalf ("unexpected error getting home dir: %v" , err )
72+ }
73+
74+ expected := filepath .Join (homeDir , ConfigDirName )
75+ if dir != expected {
76+ t .Errorf ("expected %q, got %q" , expected , dir )
77+ }
78+ }
79+
4580func TestSaveConfig (t * testing.T ) {
4681 tmpDir := t .TempDir ()
4782 cfgPath := filepath .Join (tmpDir , "config.json" )
You can’t perform that action at this time.
0 commit comments