summaryrefslogtreecommitdiff
path: root/server/tests/common/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/common/mod.rs')
-rw-r--r--server/tests/common/mod.rs36
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()
+ }
+}