diff --git a/src/claims.rs b/src/claims.rs index 420732c..0c5722e 100644 --- a/src/claims.rs +++ b/src/claims.rs @@ -71,6 +71,14 @@ mod tests { #[derive(Default, Debug, Serialize, Deserialize, PartialEq)] struct EmptyClaim { } + #[derive(Default, Debug, Serialize, Deserialize, PartialEq)] + struct NonEmptyClaim { + user_id: String, + is_admin: bool, + first_name: Option, + last_name: Option + } + #[test] fn from_base64() { let enc = "eyJpc3MiOiJleGFtcGxlLmNvbSIsImV4cCI6MTMwMjMxOTEwMH0"; @@ -97,4 +105,16 @@ mod tests { let enc = claims.to_base64().unwrap(); assert_eq!(claims, Claims::from_base64(&*enc).unwrap()); } + + #[test] + fn roundtrip_custom() { + let mut claims: Claims = Default::default(); + claims.reg.iss = Some("example.com".into()); + claims.reg.exp = Some(1302319100); + claims.private.user_id = "123456".into(); + claims.private.is_admin = false; + claims.private.first_name = Some("Random".into()); + let enc = claims.to_base64().unwrap(); + assert_eq!(claims, Claims::::from_base64(&*enc).unwrap()); + } }