feat: define interface for getting user secret

This commit is contained in:
realaravinth 2022-05-11 20:21:06 +05:30
parent f165581e17
commit 28ddadc5fe
No known key found for this signature in database
GPG key ID: AD9F0F08E855ED88
3 changed files with 15 additions and 1 deletions

View file

@ -96,7 +96,7 @@ test: frontend-test frontend ## Run all available tests
cd db/db-sqlx-postgres &&\
DATABASE_URL=${POSTGRES_DATABASE_URL}\
cargo test --no-fail-fast
# ./scripts/tests.sh
./scripts/tests.sh
# cargo test --all-features --no-fail-fast
xml-test-coverage: migrate ## Generate code coverage report in XML format

View file

@ -125,6 +125,16 @@ pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase {
/// update username
async fn update_username(&self, current: &str, new: &str) -> DBResult<()>;
/// get a user's secret
async fn get_secret(&self, username: &str) -> DBResult<Secret>;
}
#[derive(Clone, Debug, Deserialize, Serialize)]
/// datastructure representing a user's secret
pub struct Secret {
/// user's secret
pub secret: String,
}
/// Trait to clone MCDatabase

View file

@ -29,6 +29,10 @@ pub async fn database_works<'a, T: MCDatabase>(db: &T, p: &Register<'a>) {
}
db.register(p).await.unwrap();
// testing get secret
let secret = db.get_secret(&p.username).await.unwrap();
assert_eq!(secret.secret, p.secret, "user secret matches");
// testing get_password
// with username