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)
}
}