diff options
Diffstat (limited to 'server/tests/common/mod.rs')
-rw-r--r-- | server/tests/common/mod.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/server/tests/common/mod.rs b/server/tests/common/mod.rs new file mode 100644 index 0000000..e907306 --- /dev/null +++ b/server/tests/common/mod.rs @@ -0,0 +1,36 @@ +use std::env; + +use env_logger::Env; +use sqlx::{PgPool, postgres::PgPoolOptions}; + +pub fn test_setup() { + dotenv::dotenv().ok(); + let _ = env_logger::Builder::from_env( + Env::default().default_filter_or("info"), + ) + .is_test(true) + .try_init(); +} + +pub struct TestDb { + db_pool: PgPool, +} + +impl TestDb { + pub async fn new() -> Self { + test_setup(); + let db_url = env::var("DATABASE_URL").expect("DATABASE_URL"); + let db_pool = PgPoolOptions::new() + .max_connections(10) + .connect(&db_url) + .await + .expect("db connection"); + Self { + db_pool + } + } + + pub fn db(&self) -> PgPool { + self.db_pool.clone() + } +} |