@@ -10,11 +10,14 @@ defmodule RealtimeWeb.RealtimeChannel.LoggingTest do
10
10
:telemetry . attach ( __MODULE__ , [ :realtime , :channel , :error ] , & __MODULE__ . handle_telemetry / 4 , pid: self ( ) )
11
11
level = Logger . level ( )
12
12
Logger . configure ( level: :info )
13
+ tenant = tenant_fixture ( )
13
14
14
15
on_exit ( fn ->
15
16
:telemetry . detach ( __MODULE__ )
16
17
Logger . configure ( level: level )
17
18
end )
19
+
20
+ % { tenant: tenant }
18
21
end
19
22
20
23
describe "maybe_log_handle_info/2" do
@@ -178,11 +181,6 @@ defmodule RealtimeWeb.RealtimeChannel.LoggingTest do
178
181
end
179
182
180
183
describe "log_error_with_token_metadata/4" do
181
- setup do
182
- tenant = tenant_fixture ( )
183
- % { tenant: tenant }
184
- end
185
-
186
184
test "logs error messages with token metadata" , % { tenant: tenant } do
187
185
sub = random_string ( )
188
186
iss = "https://#{ random_string ( ) } .com"
@@ -198,22 +196,62 @@ defmodule RealtimeWeb.RealtimeChannel.LoggingTest do
198
196
end
199
197
200
198
describe "log_warning_with_token_metadata/4" do
201
- setup do
202
- tenant = tenant_fixture ( )
203
- % { tenant: tenant }
199
+ test "logs warning messages with token metadata" , % { tenant: tenant } do
200
+ sub = random_string ( )
201
+ iss = "https://#{ random_string ( ) } .com"
202
+ exp = System . system_time ( :second ) + 1000
203
+
204
+ token = generate_jwt_token ( tenant , % { sub: sub , exp: exp , iss: iss } )
205
+ log = capture_log ( fn -> Logging . log_warning_with_token_metadata ( "TestCode" , "test message" , token ) end )
206
+ assert log =~ "TestCode: test message"
207
+ assert log =~ "sub=#{ sub } "
208
+ assert log =~ "exp=#{ exp } "
209
+ assert log =~ "iss=#{ iss } "
204
210
end
211
+ end
205
212
213
+ describe "maybe_log_warning_with_token_metadata/4" do
206
214
test "logs warning messages with token metadata" , % { tenant: tenant } do
207
215
sub = random_string ( )
208
216
iss = "https://#{ random_string ( ) } .com"
209
217
exp = System . system_time ( :second ) + 1000
210
218
211
219
token = generate_jwt_token ( tenant , % { sub: sub , exp: exp , iss: iss } )
212
- log = capture_log ( fn -> Logging . log_warning_with_token_metadata ( "TestCode" , "test message" , token ) end )
220
+
221
+ log =
222
+ capture_log ( fn -> Logging . maybe_log_warning_with_token_metadata ( "TestCode" , "test message" , token , :warning ) end )
223
+
213
224
assert log =~ "TestCode: test message"
214
225
assert log =~ "sub=#{ sub } "
215
226
assert log =~ "exp=#{ exp } "
216
227
assert log =~ "iss=#{ iss } "
217
228
end
229
+
230
+ test "logs warning messages with token metadata when log level is lower than warning" , % { tenant: tenant } do
231
+ sub = random_string ( )
232
+ iss = "https://#{ random_string ( ) } .com"
233
+ exp = System . system_time ( :second ) + 1000
234
+
235
+ token = generate_jwt_token ( tenant , % { sub: sub , exp: exp , iss: iss } )
236
+
237
+ log =
238
+ capture_log ( fn -> Logging . maybe_log_warning_with_token_metadata ( "TestCode" , "test message" , token , :info ) end )
239
+
240
+ assert log =~ "TestCode: test message"
241
+ assert log =~ "sub=#{ sub } "
242
+ assert log =~ "exp=#{ exp } "
243
+ assert log =~ "iss=#{ iss } "
244
+ end
245
+
246
+ test "does not log warning messages when log level is higher than warning" do
247
+ token = random_string ( )
248
+
249
+ log =
250
+ capture_log ( fn ->
251
+ Logging . maybe_log_warning_with_token_metadata ( "TestCode" , "test message" , token , :error )
252
+ end )
253
+
254
+ assert log == ""
255
+ end
218
256
end
219
257
end
0 commit comments