From 2d4eb87d27963c5d4728b83e55f550d1e5dadff6 Mon Sep 17 00:00:00 2001 From: Sebastian Pravda Date: Wed, 26 Oct 2022 10:30:28 +0200 Subject: [PATCH] feat: test --- core/src/token/mod.rs | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/core/src/token/mod.rs b/core/src/token/mod.rs index e6df692..52825e7 100644 --- a/core/src/token/mod.rs +++ b/core/src/token/mod.rs @@ -16,7 +16,7 @@ use serde::Deserialize; const ONE_WEEK: i64 = 60 * 60 * 24 * 7; pub fn generate_candidate_token(candidate: candidate::Model) -> String { - let now = Utc::now().timestamp_nanos() / 1_000_000_000; // nanosecond -> second + let now = Utc::now().timestamp(); let payload = CandidateToken { iat: now, exp: now + ONE_WEEK, @@ -33,7 +33,7 @@ pub fn generate_candidate_token(candidate: candidate::Model) -> String { } pub fn generate_admin_token(_admin: admin::Model) -> String { - let now = Utc::now().timestamp_nanos() / 1_000_000_000; // nanosecond -> second + let now = Utc::now().timestamp(); let payload = AdminToken { iat: now, exp: now + ONE_WEEK, @@ -63,6 +63,35 @@ pub fn decode_admin_token(token: String) -> Result> { decode_token(token) } -/*pub fn verify_token(token_data: &TokenData, conn: &DbConn) -> bool { - User::is_valid_login_session(&token_data.claims, conn) -}*/ + +#[test] +fn test_encode_decode_verify_token() { + let candidate_model = candidate::Model { + application: 101204, + code: "random_code".to_string(), + birth_surname: None, + birthplace: None, + birthdate: None, + address: None, + telephone: None, + citizenship: None, + sex: None, + study: None, + personal_identification_number: None, + personal_identification_number_hash: None, + public_key: "None".to_owned(), + private_key: "None".to_owned(), + created_at: Utc::now().naive_local(), + updated_at: Utc::now().naive_local(), + name: Some("Uplnej".to_string()), + surname: Some("Magor".to_string()), + email: Some("email.uchazece@centrum.cz".to_string()), + }; + + let jwt = generate_candidate_token(candidate_model.clone()); + + let decoded = decode_candidate_token(jwt).unwrap(); + let token_claims = decoded.claims; + assert_eq!(candidate_model.name.unwrap(), token_claims.name); + assert_eq!(candidate_model.surname.unwrap(), token_claims.surname); +} \ No newline at end of file