From b82092e323190da220077ff304da83d3eeb713d3 Mon Sep 17 00:00:00 2001 From: Sebastian Pravda Date: Fri, 28 Oct 2022 12:39:02 +0200 Subject: [PATCH] feat: find_candidate_by_id_test --- core/src/query.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/core/src/query.rs b/core/src/query.rs index 72aa09f..a4e4236 100644 --- a/core/src/query.rs +++ b/core/src/query.rs @@ -8,3 +8,43 @@ impl Query { Candidate::find_by_id(id).one(db).await } } + +#[cfg(test)] +mod tests { + use sea_orm::{DbConn, Set, ActiveModelTrait}; + use entity::candidate; + use sea_orm::{Schema, Database, DbBackend, sea_query::TableCreateStatement, ConnectionTrait}; + + 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 + } + + #[tokio::test] + async fn test_find_candidate_by_id() { + let db = get_memory_sqlite_connection().await; + let candidate = candidate::ActiveModel { + application: Set(103158), + code: Set("test".to_string()), + public_key: Set("test".to_string()), + private_key: Set("test".to_string()), + created_at: Set(chrono::offset::Local::now().naive_local()), + updated_at: Set(chrono::offset::Local::now().naive_local()), + ..Default::default() + } + .insert(&db) + .await + .unwrap(); + + let candidate = Query::find_candidate_by_id(&db, candidate.application).await.unwrap(); + assert!(candidate.is_some()); + } +} \ No newline at end of file