feat: define interface to change password

This commit is contained in:
realaravinth 2022-05-11 19:51:06 +05:30
parent f398c4b61c
commit f55a383eb5
No known key found for this signature in database
GPG Key ID: AD9F0F08E855ED88
2 changed files with 17 additions and 1 deletions

View File

@ -122,6 +122,9 @@ pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase {
/// get a user's password /// get a user's password
async fn get_password(&self, l: &Login) -> DBResult<NameHash>; async fn get_password(&self, l: &Login) -> DBResult<NameHash>;
/// update user's password
async fn update_password(&self, p: &NameHash) -> DBResult<()>;
} }
/// Trait to clone MCDatabase /// Trait to clone MCDatabase

View File

@ -38,7 +38,7 @@ pub async fn database_works<'a, T: MCDatabase>(db: &T, p: &Register<'a>) {
assert_eq!(name_hash.username, p.username, "username matches"); assert_eq!(name_hash.username, p.username, "username matches");
// with email // with email
let name_hash = db let mut name_hash = db
.get_password(&Login::Email(p.email.as_ref().unwrap())) .get_password(&Login::Email(p.email.as_ref().unwrap()))
.await .await
.unwrap(); .unwrap();
@ -54,6 +54,19 @@ pub async fn database_works<'a, T: MCDatabase>(db: &T, p: &Register<'a>) {
db.username_exists(p.username).await.unwrap(), db.username_exists(p.username).await.unwrap(),
"user is registered so username should exsit" "user is registered so username should exsit"
); );
// update password test. setting password = username
name_hash.hash = name_hash.username.clone();
db.update_password(&name_hash).await.unwrap();
let name_hash = db.get_password(&Login::Username(p.username)).await.unwrap();
assert_eq!(
name_hash.hash, p.username,
"user password matches with changed value"
);
assert_eq!(name_hash.username, p.username, "username matches");
// deleting user for re-registration with email = None
db.delete_user(p.username).await.unwrap(); db.delete_user(p.username).await.unwrap();
assert!( assert!(
!db.username_exists(p.username).await.unwrap(), !db.username_exists(p.username).await.unwrap(),