From e0e487fbf402ab9bfa1f5800284220bc7a1ec9f7 Mon Sep 17 00:00:00 2001 From: MedzikUser Date: Thu, 21 Apr 2022 20:53:30 +0200 Subject: [PATCH] utils (database user struct): add more tests and change username to lowercase --- utils/src/database/user.rs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/utils/src/database/user.rs b/utils/src/database/user.rs index ceead71..8692ed2 100644 --- a/utils/src/database/user.rs +++ b/utils/src/database/user.rs @@ -3,7 +3,7 @@ use uuid::Uuid; use crate::crypto::CryptographicHash; -#[derive(Debug)] +#[derive(Debug, sqlx::FromRow)] pub struct User { pub id: String, pub username: String, @@ -24,12 +24,33 @@ impl User { let sha1_name = CryptographicHash::hash("SHA-1", username.as_bytes()).unwrap(); let id = Uuid::new_v5(&Uuid::NAMESPACE_X500, &sha1_name).to_string(); + let username = username.to_lowercase(); let password = encode(CryptographicHash::hash("SHA-512", password.as_bytes()).unwrap()); Self { id, - username: username.to_string(), + username, password, } } } + +#[cfg(test)] +mod tests { + use super::User; + + #[test] + fn check_username_is_in_lowercase() { + let user = User::new("MEdzIk", "SuperSecretPassword123!"); + + assert_eq!(user.username, "medzik") + } + + #[test] + fn check_password_is_hashed() { + let password = "Password"; + let user = User::new("test", password); + + assert!(user.password != password) + } +}