diff --git a/src/token.rs b/src/token.rs index ffc5004..eaceb9a 100644 --- a/src/token.rs +++ b/src/token.rs @@ -100,7 +100,7 @@ pub fn create_token( payload.set_subject(message); payload.set_issuer(issuer); payload.set_audience(audiences.clone()); - if token_resource.id.is_nil() { + if !token_resource.id.is_nil() { match payload.set_claim("id", Some(serde_json::json!(token_resource.id))) { Ok(_) => { } @@ -178,4 +178,25 @@ mod tests { } } } + + #[test] + fn test_token_creation_with_id() { + let key = test_key(); + let mut test_token_resource = test_resource(); + test_token_resource.id = uuid::Uuid::new_v4(); + let token_expiration_duration = time::Duration::hours(2); + + match create_token(&key, &test_token_resource, token_expiration_duration) { + Ok((token, expire_duration)) => { + assert_eq!(false, token.is_empty(), "Error: Token is empty"); + assert!( + expire_duration > 0, + "Token expire duration is invalid {expire_duration:?}" + ); + } + Err(err) => { + assert!(false, "Error: {err:?}"); + } + } + } }