@@ -19,125 +19,143 @@ func TestLoadParams(t *testing.T) {
19
19
20
20
defer tmpFile .Close ()
21
21
22
+ ctx := context .Background ()
23
+
24
+ v := viper .New ()
25
+ v .Set ("log-file" , tmpFile .Name ())
26
+ v .Set ("log-to-stdout" , true )
27
+ v .Set ("metrics" , true )
28
+ v .Set ("verbose" , true )
29
+ v .Set ("send-diagnostics-on-errors" , true )
30
+
31
+ params , err := logfile .LoadParams (ctx , v )
32
+ require .NoError (t , err )
33
+
34
+ assert .True (t , params .Verbose )
35
+ assert .True (t , params .Metrics )
36
+ assert .True (t , params .ToStdout )
37
+ assert .True (t , params .SendDiagsOnErrors )
38
+ assert .Equal (t , tmpFile .Name (), params .File )
39
+ }
40
+
41
+ func TestLoadParams_LogFile_FlagDeprecated (t * testing.T ) {
42
+ tmpFile , err := os .CreateTemp (t .TempDir (), "" )
43
+ require .NoError (t , err )
44
+
45
+ defer tmpFile .Close ()
46
+
47
+ ctx := context .Background ()
48
+
49
+ v := viper .New ()
50
+ v .Set ("logfile" , tmpFile .Name ())
51
+
52
+ params , err := logfile .LoadParams (ctx , v )
53
+ require .NoError (t , err )
54
+
55
+ assert .Equal (t , tmpFile .Name (), params .File )
56
+ }
57
+
58
+ func TestLoadParams_LogFile_FromConfig (t * testing.T ) {
59
+ tmpFile , err := os .CreateTemp (t .TempDir (), "" )
60
+ require .NoError (t , err )
61
+
62
+ defer tmpFile .Close ()
63
+
64
+ ctx := context .Background ()
65
+
66
+ v := viper .New ()
67
+ v .Set ("settings.log_file" , tmpFile .Name ())
68
+
69
+ params , err := logfile .LoadParams (ctx , v )
70
+ require .NoError (t , err )
71
+
72
+ assert .Equal (t , tmpFile .Name (), params .File )
73
+ }
74
+
75
+ func TestLoadParams_LogFile_FromEnvVar (t * testing.T ) {
76
+ tmpFile , err := os .CreateTemp (t .TempDir (), "" )
77
+ require .NoError (t , err )
78
+
79
+ defer tmpFile .Close ()
80
+
22
81
dir , _ := filepath .Split (tmpFile .Name ())
23
82
24
- logFile , err := os .Create (filepath .Join (dir , "wakatime.log" ))
83
+ ctx := context .Background ()
84
+
85
+ v := viper .New ()
86
+
87
+ t .Setenv ("WAKATIME_HOME" , dir )
88
+
89
+ params , err := logfile .LoadParams (ctx , v )
25
90
require .NoError (t , err )
26
91
27
- defer logFile .Close ()
92
+ assert .Equal (t , filepath .Join (dir , "wakatime.log" ), params .File )
93
+ }
28
94
29
- home , err := os .UserHomeDir ()
95
+ func TestLoadParams_LogFile_FlagTakesPrecedence (t * testing.T ) {
96
+ tmpFile , err := os .CreateTemp (t .TempDir (), "" )
30
97
require .NoError (t , err )
31
98
99
+ defer tmpFile .Close ()
100
+
32
101
ctx := context .Background ()
33
102
34
- tests := map [string ]struct {
35
- EnvVar string
36
- ViperDebug bool
37
- ViperDebugConfig bool
38
- ViperLogFile string
39
- ViperLogFileConfig string
40
- ViperLogFileOld string
41
- ViperMetrics bool
42
- ViperMetricsConfig bool
43
- ViperToStdout bool
44
- Expected logfile.Params
45
- }{
46
- "verbose set" : {
47
- ViperDebug : true ,
48
- Expected : logfile.Params {
49
- File : filepath .Join (home , ".wakatime" , "wakatime.log" ),
50
- Verbose : true ,
51
- },
52
- },
53
- "verbose from config" : {
54
- ViperDebugConfig : true ,
55
- Expected : logfile.Params {
56
- File : filepath .Join (home , ".wakatime" , "wakatime.log" ),
57
- Verbose : true ,
58
- },
59
- },
60
- "log file flag takes precedence" : {
61
- ViperLogFile : tmpFile .Name (),
62
- ViperLogFileConfig : "otherfolder/wakatime.config.log" ,
63
- ViperLogFileOld : "otherfolder/wakatime.old.log" ,
64
- Expected : logfile.Params {
65
- File : tmpFile .Name (),
66
- },
67
- },
68
- "log file deprecated flag takes precedence" : {
69
- ViperLogFileConfig : "otherfolder/wakatime.config.log" ,
70
- ViperLogFileOld : tmpFile .Name (),
71
- Expected : logfile.Params {
72
- File : tmpFile .Name (),
73
- },
74
- },
75
- "log file from config" : {
76
- ViperLogFileConfig : tmpFile .Name (),
77
- Expected : logfile.Params {
78
- File : tmpFile .Name (),
79
- },
80
- },
81
- "log file from WAKATIME_HOME" : {
82
- EnvVar : dir ,
83
- Expected : logfile.Params {
84
- File : filepath .Join (dir , "wakatime.log" ),
85
- },
86
- },
87
- "log file from home dir" : {
88
- Expected : logfile.Params {
89
- File : filepath .Join (home , ".wakatime" , "wakatime.log" ),
90
- },
91
- },
92
- "metrics set" : {
93
- ViperMetrics : true ,
94
- Expected : logfile.Params {
95
- File : filepath .Join (home , ".wakatime" , "wakatime.log" ),
96
- Metrics : true ,
97
- },
98
- },
99
- "metrics from config" : {
100
- ViperMetricsConfig : true ,
101
- Expected : logfile.Params {
102
- File : filepath .Join (home , ".wakatime" , "wakatime.log" ),
103
- Metrics : true ,
104
- },
105
- },
106
- "metrics flag takes precedence" : {
107
- ViperMetrics : true ,
108
- ViperMetricsConfig : false ,
109
- Expected : logfile.Params {
110
- File : filepath .Join (home , ".wakatime" , "wakatime.log" ),
111
- Metrics : true ,
112
- },
113
- },
114
- "log to stdout" : {
115
- ViperToStdout : true ,
116
- Expected : logfile.Params {
117
- File : filepath .Join (home , ".wakatime" , "wakatime.log" ),
118
- ToStdout : true ,
119
- },
120
- },
121
- }
122
-
123
- for name , test := range tests {
124
- t .Run (name , func (t * testing.T ) {
125
- v := viper .New ()
126
- v .Set ("log-file" , test .ViperLogFile )
127
- v .Set ("logfile" , test .ViperLogFileOld )
128
- v .Set ("log-to-stdout" , test .ViperToStdout )
129
- v .Set ("metrics" , test .ViperMetrics )
130
- v .Set ("settings.metrics" , test .ViperMetricsConfig )
131
- v .Set ("settings.log_file" , test .ViperLogFileConfig )
132
- v .Set ("settings.debug" , test .ViperDebug )
133
- v .Set ("verbose" , test .ViperDebugConfig )
134
-
135
- t .Setenv ("WAKATIME_HOME" , test .EnvVar )
136
-
137
- params , err := logfile .LoadParams (ctx , v )
138
- require .NoError (t , err )
139
-
140
- assert .Equal (t , test .Expected , params )
141
- })
142
- }
103
+ v := viper .New ()
104
+ v .Set ("log-file" , tmpFile .Name ())
105
+ v .Set ("settings.log_file" , "otherfolder/wakatime.config.log" )
106
+
107
+ params , err := logfile .LoadParams (ctx , v )
108
+ require .NoError (t , err )
109
+
110
+ assert .Equal (t , tmpFile .Name (), params .File )
111
+ }
112
+
113
+ func TestLoadParams_Metrics_FromConfig (t * testing.T ) {
114
+ ctx := context .Background ()
115
+
116
+ v := viper .New ()
117
+ v .Set ("settings.metrics" , true )
118
+
119
+ params , err := logfile .LoadParams (ctx , v )
120
+ require .NoError (t , err )
121
+
122
+ assert .True (t , params .Metrics )
123
+ }
124
+
125
+ func TestLoadParams_Metrics_FlagTakesPrecedence (t * testing.T ) {
126
+ ctx := context .Background ()
127
+
128
+ v := viper .New ()
129
+ v .Set ("metrics" , false )
130
+ v .Set ("settings.metrics" , true )
131
+
132
+ params , err := logfile .LoadParams (ctx , v )
133
+ require .NoError (t , err )
134
+
135
+ assert .False (t , params .Metrics )
136
+ }
137
+
138
+ func TestLoadParams_Verbose_FromConfig (t * testing.T ) {
139
+ ctx := context .Background ()
140
+
141
+ v := viper .New ()
142
+ v .Set ("settings.debug" , true )
143
+
144
+ params , err := logfile .LoadParams (ctx , v )
145
+ require .NoError (t , err )
146
+
147
+ assert .True (t , params .Verbose )
148
+ }
149
+
150
+ func TestLoadParams_Verbose_FlagTakesPrecedence (t * testing.T ) {
151
+ ctx := context .Background ()
152
+
153
+ v := viper .New ()
154
+ v .Set ("verbose" , false )
155
+ v .Set ("settings.debug" , true )
156
+
157
+ params , err := logfile .LoadParams (ctx , v )
158
+ require .NoError (t , err )
159
+
160
+ assert .False (t , params .Verbose )
143
161
}
0 commit comments