From 67fa2c73813b9d60771d05972aebaf4f93e0b49a Mon Sep 17 00:00:00 2001 From: Aravinth Manivannan Date: Mon, 10 Jun 2024 15:36:00 +0530 Subject: [PATCH] fix: isolate test db --- src/tests.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/tests.rs b/src/tests.rs index fb36ad3..805826b 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -24,6 +24,7 @@ use actix_web::{ }; use mktemp::Temp; use serde::Serialize; +use url::Url; use crate::ctx::api::v1::auth::{Login, Register}; use crate::ctx::api::v1::pages::AddSite; @@ -40,6 +41,15 @@ pub async fn get_ctx() -> (Temp, Arc) { // mktemp::Temp is returned because the temp directory created // is removed once the variable goes out of scope let mut settings = Settings::new().unwrap(); + let mut db_url = Url::parse(&settings.database.url).unwrap(); + db_url.set_path(&crate::utils::get_random(8)); + settings.database.url = db_url.to_string(); + + use sqlx::migrate::MigrateDatabase; + // sqlx::Postgres::create_database(&settings.database.url).await.unwrap(); + sqlx::postgres::Postgres::create_database(&settings.database.url) + .await + .unwrap(); let tmp_dir = Temp::new_dir().unwrap(); println!("[log] Test temp directory: {}", tmp_dir.to_str().unwrap()); @@ -48,8 +58,10 @@ pub async fn get_ctx() -> (Temp, Arc) { settings.init(); println!("[log] Initialzing settings again with test config"); settings.init(); + let ctx = Ctx::new(settings).await; + ctx.db.migrate().await.unwrap(); - (tmp_dir, Ctx::new(settings).await) + (tmp_dir, ctx) } #[allow(dead_code, clippy::upper_case_acronyms)]