@@ -53,7 +53,7 @@ func TestConfigFromEnv_noEnvVars(t *testing.T) {
5353 unsetAllEnvVars (t )
5454 defer unsetAllEnvVars (t )
5555
56- cfg := ConfigFromEnv ()
56+ cfg := ConfigFromEnv (DefaultConfig () )
5757 want := DefaultConfig ()
5858
5959 // Compare field by field because structs containing slices cannot use ==.
@@ -91,7 +91,7 @@ func TestConfigFromEnv_noEnvVars(t *testing.T) {
9191
9292func TestConfigFromEnv_token (t * testing.T ) {
9393 t .Setenv ("ODEK_TELEGRAM_BOT_TOKEN" , "my-secret-token:123" )
94- cfg := ConfigFromEnv ()
94+ cfg := ConfigFromEnv (DefaultConfig () )
9595 if cfg .Token != "my-secret-token:123" {
9696 t .Errorf ("Token = %q, want %q" , cfg .Token , "my-secret-token:123" )
9797 }
@@ -104,15 +104,15 @@ func TestConfigFromEnv_token(t *testing.T) {
104104func TestConfigFromEnv_emptyTokenIgnored (t * testing.T ) {
105105 // Empty env var should not override the default (which is "").
106106 t .Setenv ("ODEK_TELEGRAM_BOT_TOKEN" , "" )
107- cfg := ConfigFromEnv ()
107+ cfg := ConfigFromEnv (DefaultConfig () )
108108 if cfg .Token != "" {
109109 t .Errorf ("Token = %q, want empty" , cfg .Token )
110110 }
111111}
112112
113113func TestConfigFromEnv_allowedChats (t * testing.T ) {
114114 t .Setenv ("ODEK_TELEGRAM_ALLOWED_CHATS" , " -100123 , 42 , 99 " )
115- cfg := ConfigFromEnv ()
115+ cfg := ConfigFromEnv (DefaultConfig () )
116116 want := []int64 {- 100123 , 42 , 99 }
117117 if ! equalInt64Slice (cfg .AllowedChats , want ) {
118118 t .Errorf ("AllowedChats = %v, want %v" , cfg .AllowedChats , want )
@@ -121,15 +121,15 @@ func TestConfigFromEnv_allowedChats(t *testing.T) {
121121
122122func TestConfigFromEnv_allowedChatsEmpty (t * testing.T ) {
123123 t .Setenv ("ODEK_TELEGRAM_ALLOWED_CHATS" , "" )
124- cfg := ConfigFromEnv ()
124+ cfg := ConfigFromEnv (DefaultConfig () )
125125 if cfg .AllowedChats != nil {
126126 t .Errorf ("AllowedChats = %v, want nil" , cfg .AllowedChats )
127127 }
128128}
129129
130130func TestConfigFromEnv_allowedChatsInvalidSkips (t * testing.T ) {
131131 t .Setenv ("ODEK_TELEGRAM_ALLOWED_CHATS" , "abc, -100123, 12.5, 99," )
132- cfg := ConfigFromEnv ()
132+ cfg := ConfigFromEnv (DefaultConfig () )
133133 want := []int64 {- 100123 , 99 }
134134 if ! equalInt64Slice (cfg .AllowedChats , want ) {
135135 t .Errorf ("AllowedChats = %v, want %v" , cfg .AllowedChats , want )
@@ -138,7 +138,7 @@ func TestConfigFromEnv_allowedChatsInvalidSkips(t *testing.T) {
138138
139139func TestConfigFromEnv_allowedUsers (t * testing.T ) {
140140 t .Setenv ("ODEK_TELEGRAM_ALLOWED_USERS" , " 111 , 222 " )
141- cfg := ConfigFromEnv ()
141+ cfg := ConfigFromEnv (DefaultConfig () )
142142 want := []int64 {111 , 222 }
143143 if ! equalInt64Slice (cfg .AllowedUsers , want ) {
144144 t .Errorf ("AllowedUsers = %v, want %v" , cfg .AllowedUsers , want )
@@ -147,15 +147,15 @@ func TestConfigFromEnv_allowedUsers(t *testing.T) {
147147
148148func TestConfigFromEnv_botUsername (t * testing.T ) {
149149 t .Setenv ("ODEK_TELEGRAM_BOT_USERNAME" , "MyAwesomeBot" )
150- cfg := ConfigFromEnv ()
150+ cfg := ConfigFromEnv (DefaultConfig () )
151151 if cfg .BotUsername != "MyAwesomeBot" {
152152 t .Errorf ("BotUsername = %q, want %q" , cfg .BotUsername , "MyAwesomeBot" )
153153 }
154154}
155155
156156func TestConfigFromEnv_pollInterval (t * testing.T ) {
157157 t .Setenv ("ODEK_TELEGRAM_POLL_INTERVAL" , "5" )
158- cfg := ConfigFromEnv ()
158+ cfg := ConfigFromEnv (DefaultConfig () )
159159 if cfg .PollInterval != 5 {
160160 t .Errorf ("PollInterval = %d, want 5" , cfg .PollInterval )
161161 }
@@ -164,103 +164,103 @@ func TestConfigFromEnv_pollInterval(t *testing.T) {
164164func TestConfigFromEnv_pollIntervalInvalid (t * testing.T ) {
165165 // Invalid (non-numeric) values should be silently ignored.
166166 t .Setenv ("ODEK_TELEGRAM_POLL_INTERVAL" , "not-a-number" )
167- cfg := ConfigFromEnv ()
167+ cfg := ConfigFromEnv (DefaultConfig () )
168168 if cfg .PollInterval != 1 {
169169 t .Errorf ("PollInterval = %d, want default 1" , cfg .PollInterval )
170170 }
171171}
172172
173173func TestConfigFromEnv_pollIntervalEmpty (t * testing.T ) {
174174 t .Setenv ("ODEK_TELEGRAM_POLL_INTERVAL" , "" )
175- cfg := ConfigFromEnv ()
175+ cfg := ConfigFromEnv (DefaultConfig () )
176176 if cfg .PollInterval != 1 {
177177 t .Errorf ("PollInterval = %d, want default 1" , cfg .PollInterval )
178178 }
179179}
180180
181181func TestConfigFromEnv_pollTimeout (t * testing.T ) {
182182 t .Setenv ("ODEK_TELEGRAM_POLL_TIMEOUT" , "45" )
183- cfg := ConfigFromEnv ()
183+ cfg := ConfigFromEnv (DefaultConfig () )
184184 if cfg .PollTimeout != 45 {
185185 t .Errorf ("PollTimeout = %d, want 45" , cfg .PollTimeout )
186186 }
187187}
188188
189189func TestConfigFromEnv_pollTimeoutInvalid (t * testing.T ) {
190190 t .Setenv ("ODEK_TELEGRAM_POLL_TIMEOUT" , "abc" )
191- cfg := ConfigFromEnv ()
191+ cfg := ConfigFromEnv (DefaultConfig () )
192192 if cfg .PollTimeout != 30 {
193193 t .Errorf ("PollTimeout = %d, want default 30" , cfg .PollTimeout )
194194 }
195195}
196196
197197func TestConfigFromEnv_pollTimeoutEmpty (t * testing.T ) {
198198 t .Setenv ("ODEK_TELEGRAM_POLL_TIMEOUT" , "" )
199- cfg := ConfigFromEnv ()
199+ cfg := ConfigFromEnv (DefaultConfig () )
200200 if cfg .PollTimeout != 30 {
201201 t .Errorf ("PollTimeout = %d, want default 30" , cfg .PollTimeout )
202202 }
203203}
204204
205205func TestConfigFromEnv_maxMsgLength (t * testing.T ) {
206206 t .Setenv ("ODEK_TELEGRAM_MAX_MSG_LENGTH" , "1024" )
207- cfg := ConfigFromEnv ()
207+ cfg := ConfigFromEnv (DefaultConfig () )
208208 if cfg .MaxMsgLength != 1024 {
209209 t .Errorf ("MaxMsgLength = %d, want 1024" , cfg .MaxMsgLength )
210210 }
211211}
212212
213213func TestConfigFromEnv_maxMsgLengthInvalid (t * testing.T ) {
214214 t .Setenv ("ODEK_TELEGRAM_MAX_MSG_LENGTH" , "xyz" )
215- cfg := ConfigFromEnv ()
215+ cfg := ConfigFromEnv (DefaultConfig () )
216216 if cfg .MaxMsgLength != 4096 {
217217 t .Errorf ("MaxMsgLength = %d, want default 4096" , cfg .MaxMsgLength )
218218 }
219219}
220220
221221func TestConfigFromEnv_dailyTokenBudget (t * testing.T ) {
222222 t .Setenv ("ODEK_TELEGRAM_DAILY_TOKEN_BUDGET" , "500000" )
223- cfg := ConfigFromEnv ()
223+ cfg := ConfigFromEnv (DefaultConfig () )
224224 if cfg .DailyTokenBudget != 500000 {
225225 t .Errorf ("DailyTokenBudget = %d, want 500000" , cfg .DailyTokenBudget )
226226 }
227227}
228228
229229func TestConfigFromEnv_dailyTokenBudgetInvalid (t * testing.T ) {
230230 t .Setenv ("ODEK_TELEGRAM_DAILY_TOKEN_BUDGET" , "not-a-number" )
231- cfg := ConfigFromEnv ()
231+ cfg := ConfigFromEnv (DefaultConfig () )
232232 if cfg .DailyTokenBudget != 1000000 {
233233 t .Errorf ("DailyTokenBudget = %d, want default 1000000" , cfg .DailyTokenBudget )
234234 }
235235}
236236
237237func TestConfigFromEnv_sessionTTL (t * testing.T ) {
238238 t .Setenv ("ODEK_TELEGRAM_SESSION_TTL_HOURS" , "48" )
239- cfg := ConfigFromEnv ()
239+ cfg := ConfigFromEnv (DefaultConfig () )
240240 if cfg .SessionTTL != 48 {
241241 t .Errorf ("SessionTTL = %d, want 48" , cfg .SessionTTL )
242242 }
243243}
244244
245245func TestConfigFromEnv_sessionTTLInvalid (t * testing.T ) {
246246 t .Setenv ("ODEK_TELEGRAM_SESSION_TTL_HOURS" , "bad" )
247- cfg := ConfigFromEnv ()
247+ cfg := ConfigFromEnv (DefaultConfig () )
248248 if cfg .SessionTTL != 24 {
249249 t .Errorf ("SessionTTL = %d, want default 24" , cfg .SessionTTL )
250250 }
251251}
252252
253253func TestConfigFromEnv_sessionTTLEmpty (t * testing.T ) {
254254 t .Setenv ("ODEK_TELEGRAM_SESSION_TTL_HOURS" , "" )
255- cfg := ConfigFromEnv ()
255+ cfg := ConfigFromEnv (DefaultConfig () )
256256 if cfg .SessionTTL != 24 {
257257 t .Errorf ("SessionTTL = %d, want default 24" , cfg .SessionTTL )
258258 }
259259}
260260
261261func TestConfigFromEnv_fallbackURLs (t * testing.T ) {
262262 t .Setenv ("ODEK_TELEGRAM_FALLBACK_URLS" , "https://a.com, https://b.com" )
263- cfg := ConfigFromEnv ()
263+ cfg := ConfigFromEnv (DefaultConfig () )
264264 want := []string {"https://a.com" , "https://b.com" }
265265 if ! equalStringSlice (cfg .FallbackURLs , want ) {
266266 t .Errorf ("FallbackURLs = %v, want %v" , cfg .FallbackURLs , want )
@@ -269,15 +269,15 @@ func TestConfigFromEnv_fallbackURLs(t *testing.T) {
269269
270270func TestConfigFromEnv_fallbackURLsEmpty (t * testing.T ) {
271271 t .Setenv ("ODEK_TELEGRAM_FALLBACK_URLS" , "" )
272- cfg := ConfigFromEnv ()
272+ cfg := ConfigFromEnv (DefaultConfig () )
273273 if cfg .FallbackURLs != nil {
274274 t .Errorf ("FallbackURLs = %v, want nil" , cfg .FallbackURLs )
275275 }
276276}
277277
278278func TestConfigFromEnv_fallbackURLsTrimsEmptyEntries (t * testing.T ) {
279279 t .Setenv ("ODEK_TELEGRAM_FALLBACK_URLS" , "https://a.com, , https://b.com," )
280- cfg := ConfigFromEnv ()
280+ cfg := ConfigFromEnv (DefaultConfig () )
281281 want := []string {"https://a.com" , "https://b.com" }
282282 if ! equalStringSlice (cfg .FallbackURLs , want ) {
283283 t .Errorf ("FallbackURLs = %v, want %v" , cfg .FallbackURLs , want )
@@ -291,7 +291,7 @@ func TestConfigFromEnv_multipleOverrides(t *testing.T) {
291291 t .Setenv ("ODEK_TELEGRAM_POLL_INTERVAL" , "3" )
292292 t .Setenv ("ODEK_TELEGRAM_MAX_MSG_LENGTH" , "2048" )
293293
294- cfg := ConfigFromEnv ()
294+ cfg := ConfigFromEnv (DefaultConfig () )
295295
296296 if cfg .Token != "token:multi" {
297297 t .Errorf ("Token = %q" , cfg .Token )
0 commit comments