From f440f30ea8166732b1a5cd86019a6353ed6bb560 Mon Sep 17 00:00:00 2001 From: MedzikUser Date: Sun, 18 Sep 2022 15:25:42 +0200 Subject: [PATCH] fix(tests): add some derive to pass test Added PartialEq, Eq, PartialOrd and Ord derive to pass test broken in 4a9f8ec2e8baa94c27edd0c323c6f0a0d7b14a6c commit. --- README.md | 2 +- src/database/error.rs | 12 ++++++------ src/database/sqlite.rs | 35 ++++++++++++++++++++++++----------- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 9783d19..c3a9fd2 100644 --- a/README.md +++ b/README.md @@ -11,5 +11,5 @@     - +

diff --git a/src/database/error.rs b/src/database/error.rs index 9b61894..de819bc 100644 --- a/src/database/error.rs +++ b/src/database/error.rs @@ -1,19 +1,19 @@ use thiserror::Error; -#[derive(Debug, Error)] +#[derive(Debug, Error, PartialEq, Eq, PartialOrd, Ord)] pub enum Error { #[error("User not found")] UserNotFound, #[error("Failed to open database: {0}")] - OpenDatabase(sqlx::Error), + OpenDatabase(String), #[error("Failed to open connection with database: {0}")] - ConnectDatabase(sqlx::Error), + ConnectDatabase(String), #[error("Failed to get row: {0}")] - GetRow(sqlx::Error), + GetRow(String), #[error("Failed to create all required tables: {0}")] - CreateTables(sqlx::Error), + CreateTables(String), #[error("Failed to execute the query: {0}")] - Execute(sqlx::Error), + Execute(String), } pub type Result = std::result::Result; diff --git a/src/database/sqlite.rs b/src/database/sqlite.rs index d0a0a24..029f277 100644 --- a/src/database/sqlite.rs +++ b/src/database/sqlite.rs @@ -25,7 +25,8 @@ impl Database { debug!("Opening SQLite database: {}", path); // sqlite connection options - let mut options = SqliteConnectOptions::from_str(path).map_err(Error::OpenDatabase)?; + let mut options = + SqliteConnectOptions::from_str(path).map_err(|e| Error::OpenDatabase(e.to_string()))?; // set log level to Debug options.log_statements(LevelFilter::Debug); @@ -33,7 +34,7 @@ impl Database { // create a database pool let pool = SqlitePool::connect_with(options) .await - .map_err(Error::ConnectDatabase)?; + .map_err(|e| Error::ConnectDatabase(e.to_string()))?; info!("Connected to database!"); @@ -45,7 +46,7 @@ impl Database { self.pool .execute(include_str!("../../tables.sql")) .await - .map_err(Error::CreateTables) + .map_err(|e| Error::CreateTables(e.to_string())) } /// Create new user in the database. @@ -58,7 +59,10 @@ impl Database { .bind(&user.username) .bind(&user.password); - self.pool.execute(query).await.map_err(Error::Execute) + self.pool + .execute(query) + .await + .map_err(|e| Error::Execute(e.to_string())) } /// Search for a user. @@ -77,7 +81,7 @@ impl Database { let row = stream .try_next() .await - .map_err(Error::Execute)? + .map_err(|e| Error::Execute(e.to_string()))? .ok_or(Error::UserNotFound)?; Self::find(row) @@ -97,7 +101,7 @@ impl Database { let row = stream .try_next() .await - .map_err(Error::Execute)? + .map_err(|e| Error::Execute(e.to_string()))? .ok_or(Error::UserNotFound)?; Self::find(row) @@ -105,11 +109,17 @@ impl Database { fn find(row: SqliteRow) -> Result { // get `id` row - let id = row.try_get("id").map_err(Error::GetRow)?; + let id = row + .try_get("id") + .map_err(|e| Error::GetRow(e.to_string()))?; // get `username` row - let username = row.try_get("username").map_err(Error::GetRow)?; + let username = row + .try_get("username") + .map_err(|e| Error::GetRow(e.to_string()))?; // get `password` row - let password = row.try_get("password").map_err(Error::GetRow)?; + let password = row + .try_get("password") + .map_err(|e| Error::GetRow(e.to_string()))?; Ok(User { id, @@ -154,7 +164,10 @@ mod tests { async fn test_find_user() { let db = new_user().await; - let user = db.find_user(&User::new(USERNAME, PASSWORD, false)).await.unwrap(); + let user = db + .find_user(&User::new(USERNAME, PASSWORD, false)) + .await + .unwrap(); assert_eq!(user.username, USERNAME) } @@ -168,6 +181,6 @@ mod tests { .await .unwrap_err(); - assert_eq!(err.to_string(), "user not found") + assert_eq!(err, Error::UserNotFound) } }