@@ -105,6 +105,7 @@ mod test {
105105 use jsonwebtoken:: { Algorithm , DecodingKey , EncodingKey , Header , encode, jwk:: KeyAlgorithm } ;
106106 use jwks:: Jwk ;
107107 use serde:: Serialize ;
108+ use tracing_test:: traced_test;
108109 use url:: Url ;
109110
110111 use super :: ValidateToken ;
@@ -215,6 +216,7 @@ mod test {
215216 ) ;
216217 }
217218
219+ #[ traced_test]
218220 #[ tokio:: test]
219221 async fn it_rejects_different_key ( ) {
220222 let key_id = "some-example-id" . to_string ( ) ;
@@ -244,8 +246,18 @@ mod test {
244246 } ;
245247
246248 assert_eq ! ( test_validator. validate( jwt) . await , None ) ;
249+
250+ logs_assert ( |lines : & [ & str ] | {
251+ lines
252+ . iter ( )
253+ . filter ( |line| line. contains ( "WARN" ) )
254+ . any ( |line| line. contains ( "InvalidSignature" ) )
255+ . then_some ( ( ) )
256+ . ok_or ( "Expected warning for validation failure" . to_string ( ) )
257+ } ) ;
247258 }
248259
260+ #[ traced_test]
249261 #[ tokio:: test]
250262 async fn it_rejects_expired ( ) {
251263 let key_id = "some-example-id" . to_string ( ) ;
@@ -269,8 +281,18 @@ mod test {
269281 } ;
270282
271283 assert_eq ! ( test_validator. validate( jwt) . await , None ) ;
284+
285+ logs_assert ( |lines : & [ & str ] | {
286+ lines
287+ . iter ( )
288+ . filter ( |line| line. contains ( "WARN" ) )
289+ . any ( |line| line. contains ( "ExpiredSignature" ) )
290+ . then_some ( ( ) )
291+ . ok_or ( "Expected warning for validation failure" . to_string ( ) )
292+ } ) ;
272293 }
273294
295+ #[ traced_test]
274296 #[ tokio:: test]
275297 async fn it_rejects_different_audience ( ) {
276298 let key_id = "some-example-id" . to_string ( ) ;
@@ -282,8 +304,8 @@ mod test {
282304
283305 let audience = "test-audience" . to_string ( ) ;
284306 let bad_audience = "not-test-audience" . to_string ( ) ;
285- let in_the_past = chrono:: Utc :: now ( ) . timestamp ( ) - 1000 ;
286- let jwt = create_jwt ( key_id. clone ( ) , encode_key, bad_audience, in_the_past ) ;
307+ let in_the_future = chrono:: Utc :: now ( ) . timestamp ( ) + 1000 ;
308+ let jwt = create_jwt ( key_id. clone ( ) , encode_key, bad_audience, in_the_future ) ;
287309
288310 let server =
289311 Url :: from_str ( "https://auth.example.com" ) . expect ( "should parse a valid example server" ) ;
@@ -295,5 +317,14 @@ mod test {
295317 } ;
296318
297319 assert_eq ! ( test_validator. validate( jwt) . await , None ) ;
320+
321+ logs_assert ( |lines : & [ & str ] | {
322+ lines
323+ . iter ( )
324+ . filter ( |line| line. contains ( "WARN" ) )
325+ . any ( |line| line. contains ( "InvalidAudience" ) )
326+ . then_some ( ( ) )
327+ . ok_or ( "Expected warning for validation failure" . to_string ( ) )
328+ } ) ;
298329 }
299330}
0 commit comments