diff --git a/Makefile b/Makefile index cd304ddd..7745649b 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/db/db-core/src/lib.rs b/db/db-core/src/lib.rs index 9650cba7..5447e648 100644 --- a/db/db-core/src/lib.rs +++ b/db/db-core/src/lib.rs @@ -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; +} + +#[derive(Clone, Debug, Deserialize, Serialize)] +/// datastructure representing a user's secret +pub struct Secret { + /// user's secret + pub secret: String, } /// Trait to clone MCDatabase diff --git a/db/db-core/src/tests.rs b/db/db-core/src/tests.rs index 5323c298..a45f728e 100644 --- a/db/db-core/src/tests.rs +++ b/db/db-core/src/tests.rs @@ -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