From 8579cc99874fa6928b40e0c5bbbda2118b754e4c Mon Sep 17 00:00:00 2001 From: Sebastian Pravda Date: Mon, 14 Nov 2022 23:14:55 +0100 Subject: [PATCH] feat: move 'get_sqlite_conn' to util.rs --- core/src/database/query/candidate.rs | 14 +----------- core/src/database/query/session.rs | 22 +------------------ core/src/lib.rs | 1 + core/src/services/candidate_service.rs | 27 +---------------------- core/src/services/session_service.rs | 27 +---------------------- core/src/util.rs | 30 ++++++++++++++++++++++++++ 6 files changed, 35 insertions(+), 86 deletions(-) create mode 100644 core/src/util.rs diff --git a/core/src/database/query/candidate.rs b/core/src/database/query/candidate.rs index 72ef424..22ca2f1 100644 --- a/core/src/database/query/candidate.rs +++ b/core/src/database/query/candidate.rs @@ -19,19 +19,7 @@ mod tests { use sea_orm::{ActiveModelTrait, DbConn, Set}; use crate::Query; - - #[cfg(test)] - async fn get_memory_sqlite_connection() -> DbConn { - let base_url = "sqlite::memory:"; - let db: DbConn = Database::connect(base_url).await.unwrap(); - - let schema = Schema::new(DbBackend::Sqlite); - let stmt: TableCreateStatement = schema.create_table_from_entity(candidate::Entity); - db.execute(db.get_database_backend().build(&stmt)) - .await - .unwrap(); - db - } + use crate::util::get_memory_sqlite_connection; #[tokio::test] async fn test_find_candidate_by_id() { diff --git a/core/src/database/query/session.rs b/core/src/database/query/session.rs index 2b8ed9c..3b8f361 100644 --- a/core/src/database/query/session.rs +++ b/core/src/database/query/session.rs @@ -24,24 +24,4 @@ impl Query { .all(db) .await } -} - -#[cfg(test)] -mod tests { - use entity::candidate; - use sea_orm::DbConn; - use sea_orm::{sea_query::TableCreateStatement, ConnectionTrait, Database, DbBackend, Schema}; - - #[cfg(test)] - async fn get_memory_sqlite_connection() -> DbConn { - let base_url = "sqlite::memory:"; - let db: DbConn = Database::connect(base_url).await.unwrap(); - - let schema = Schema::new(DbBackend::Sqlite); - let stmt: TableCreateStatement = schema.create_table_from_entity(candidate::Entity); - db.execute(db.get_database_backend().build(&stmt)) - .await - .unwrap(); - db - } -} +} \ No newline at end of file diff --git a/core/src/lib.rs b/core/src/lib.rs index c910059..322409c 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -4,6 +4,7 @@ pub mod filetype; pub mod services; pub mod error; pub mod candidate_details; +pub mod util; pub use database::mutation::*; pub use database::query::*; diff --git a/core/src/services/candidate_service.rs b/core/src/services/candidate_service.rs index b2f5458..592ce8d 100644 --- a/core/src/services/candidate_service.rs +++ b/core/src/services/candidate_service.rs @@ -270,6 +270,7 @@ impl CandidateService { mod tests { use sea_orm::{Database, DbConn}; + use crate::util::get_memory_sqlite_connection; use crate::{crypto, services::candidate_service::CandidateService, Mutation}; use super::EncryptedApplicationDetails; @@ -290,32 +291,6 @@ mod tests { assert!(!CandidateService::is_application_id_valid(101)); } - #[cfg(test)] - async fn get_memory_sqlite_connection() -> DbConn { - use entity::{admin, candidate, parent}; - use sea_orm::Schema; - use sea_orm::{sea_query::TableCreateStatement, ConnectionTrait, DbBackend}; - - let base_url = "sqlite::memory:"; - let db: DbConn = Database::connect(base_url).await.unwrap(); - - let schema = Schema::new(DbBackend::Sqlite); - let stmt: TableCreateStatement = schema.create_table_from_entity(candidate::Entity); - let stmt2: TableCreateStatement = schema.create_table_from_entity(admin::Entity); - let stmt3: TableCreateStatement = schema.create_table_from_entity(parent::Entity); - - db.execute(db.get_database_backend().build(&stmt)) - .await - .unwrap(); - db.execute(db.get_database_backend().build(&stmt2)) - .await - .unwrap(); - db.execute(db.get_database_backend().build(&stmt3)) - .await - .unwrap(); - db - } - #[tokio::test] async fn test_encrypt_decrypt_private_key_with_passphrase() { let db = get_memory_sqlite_connection().await; diff --git a/core/src/services/session_service.rs b/core/src/services/session_service.rs index 86827da..33fdb7b 100644 --- a/core/src/services/session_service.rs +++ b/core/src/services/session_service.rs @@ -171,34 +171,9 @@ mod tests { use crate::{ crypto, - services::{session_service::SessionService, application_service::ApplicationService}, + services::{session_service::SessionService, application_service::ApplicationService}, util::get_memory_sqlite_connection, }; - #[cfg(test)] - async fn get_memory_sqlite_connection() -> DbConn { - let base_url = "sqlite::memory:"; - let db: DbConn = Database::connect(base_url).await.unwrap(); - - let schema = Schema::new(DbBackend::Sqlite); - let stmt: TableCreateStatement = schema.create_table_from_entity(candidate::Entity); - let stmt2: TableCreateStatement = schema.create_table_from_entity(admin::Entity); - let stmt3: TableCreateStatement = schema.create_table_from_entity(session::Entity); - let stmt4: TableCreateStatement = schema.create_table_from_entity(parent::Entity); - db.execute(db.get_database_backend().build(&stmt)) - .await - .unwrap(); - db.execute(db.get_database_backend().build(&stmt2)) - .await - .unwrap(); - db.execute(db.get_database_backend().build(&stmt3)) - .await - .unwrap(); - db.execute(db.get_database_backend().build(&stmt4)) - .await - .unwrap(); - db - } - #[tokio::test] async fn test_create_candidate() { const SECRET: &str = "Tajny_kod"; diff --git a/core/src/util.rs b/core/src/util.rs new file mode 100644 index 0000000..f58b3b8 --- /dev/null +++ b/core/src/util.rs @@ -0,0 +1,30 @@ +use crate::sea_orm::DbConn; + +#[cfg(test)] +pub async fn get_memory_sqlite_connection() -> DbConn { + use entity::{admin, candidate, parent, session}; + use sea_orm::{Schema, Database}; + use sea_orm::{sea_query::TableCreateStatement, ConnectionTrait, DbBackend}; + + let base_url = "sqlite::memory:"; + let db: DbConn = Database::connect(base_url).await.unwrap(); + + let schema = Schema::new(DbBackend::Sqlite); + let stmt: TableCreateStatement = schema.create_table_from_entity(candidate::Entity); + let stmt2: TableCreateStatement = schema.create_table_from_entity(admin::Entity); + let stmt3: TableCreateStatement = schema.create_table_from_entity(session::Entity); + let stmt4: TableCreateStatement = schema.create_table_from_entity(parent::Entity); + db.execute(db.get_database_backend().build(&stmt)) + .await + .unwrap(); + db.execute(db.get_database_backend().build(&stmt2)) + .await + .unwrap(); + db.execute(db.get_database_backend().build(&stmt3)) + .await + .unwrap(); + db.execute(db.get_database_backend().build(&stmt4)) + .await + .unwrap(); + db +} \ No newline at end of file