mirror of
https://github.com/mCaptcha/mCaptcha.git
synced 2025-03-14 13:08:27 +03:00
feat: define interface to change password
This commit is contained in:
parent
f398c4b61c
commit
f55a383eb5
2 changed files with 17 additions and 1 deletions
|
@ -122,6 +122,9 @@ pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase {
|
|||
|
||||
/// get a user's password
|
||||
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
|
||||
|
|
|
@ -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");
|
||||
|
||||
// with email
|
||||
let name_hash = db
|
||||
let mut name_hash = db
|
||||
.get_password(&Login::Email(p.email.as_ref().unwrap()))
|
||||
.await
|
||||
.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(),
|
||||
"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();
|
||||
assert!(
|
||||
!db.username_exists(p.username).await.unwrap(),
|
||||
|
|
Loading…
Add table
Reference in a new issue