feat: define captcha_exists interface

This commit is contained in:
realaravinth
2022-05-12 19:31:26 +05:30
parent 2f924607ab
commit 55518ef650
3 changed files with 13 additions and 4 deletions

View File

@@ -144,6 +144,13 @@ pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase {
captcha_key: &str,
levels: &[Level],
) -> DBResult<()>;
/// check if captcha exists
async fn captcha_exists(
&self,
username: Option<&str>,
captcha_key: &str,
) -> DBResult<bool>;
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]

View File

@@ -35,12 +35,12 @@ pub async fn database_works<'a, T: MCDatabase>(
db.register(p).await.unwrap();
// testing get secret
let secret = db.get_secret(&p.username).await.unwrap();
let secret = db.get_secret(p.username).await.unwrap();
assert_eq!(secret.secret, p.secret, "user secret matches");
// testing update secret: setting secret = username
db.update_secret(p.username, p.username).await.unwrap();
let secret = db.get_secret(&p.username).await.unwrap();
let secret = db.get_secret(p.username).await.unwrap();
assert_eq!(
secret.secret, p.username,
"user secret matches username; as set by previous step"
@@ -131,6 +131,8 @@ pub async fn database_works<'a, T: MCDatabase>(
"user was with empty email but email is set; so email should exsit"
);
db.create_captcha(&p.username, c).await.unwrap();
db.create_captcha(p.username, c).await.unwrap();
assert!(db.captcha_exists(None, c.key).await.unwrap());
assert!(db.captcha_exists(Some(p.username), c.key).await.unwrap());
db.add_captcha_levels(p.username, c.key, l).await.unwrap();
}