From e2ebae6e2e63056eb4da7e305beb27435d402316 Mon Sep 17 00:00:00 2001 From: realaravinth Date: Thu, 12 May 2022 20:18:53 +0530 Subject: [PATCH] feat: define interface for update_captcha_key --- db/db-core/src/lib.rs | 8 ++++++++ db/db-core/src/tests.rs | 16 ++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/db/db-core/src/lib.rs b/db/db-core/src/lib.rs index 434ee86d..1ed8c9ff 100644 --- a/db/db-core/src/lib.rs +++ b/db/db-core/src/lib.rs @@ -144,6 +144,14 @@ pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase { p: &CreateCaptcha, ) -> DBResult<()>; + /// update captcha key; doesn't change metadata + async fn update_captcha_key( + &self, + username: &str, + old_key: &str, + new_key: &str, + ) -> DBResult<()>; + /// Add levels to captcha async fn add_captcha_levels( &self, diff --git a/db/db-core/src/tests.rs b/db/db-core/src/tests.rs index 761feb2f..49affdd9 100644 --- a/db/db-core/src/tests.rs +++ b/db/db-core/src/tests.rs @@ -148,7 +148,19 @@ pub async fn database_works<'a, T: MCDatabase>( c2.description = p.username; db.update_captcha_metadata(p.username, &c2).await.unwrap(); - // delete captcha - db.delete_captcha(p.username, c.key).await.unwrap(); + // update captcha key; set key = username; + db.update_captcha_key(p.username, c.key, p.username) + .await + .unwrap(); + // checking for captcha with old key; shouldn't exist + assert!(!db.captcha_exists(Some(p.username), c.key).await.unwrap()); + // checking for captcha with new key; shouldn exist + assert!(db + .captcha_exists(Some(p.username), p.username) + .await + .unwrap()); + + // delete captcha; updated key = p.username so invoke delete with it + db.delete_captcha(p.username, p.username).await.unwrap(); assert!(!db.captcha_exists(Some(p.username), c.key).await.unwrap()); }