fixed compatibility layer to old tests git status REMOVE IN THE FUTURE

This commit is contained in:
filipriec
2025-06-22 14:00:49 +02:00
parent fd36cd5795
commit 2a14eadf34
2 changed files with 9 additions and 6 deletions

View File

@@ -1,30 +1,28 @@
// tests/common/mod.rs
use dotenvy::dotenv;
// --- CHANGE 1: Add Alphanumeric to the use statement ---
use rand::distr::Alphanumeric;
use rand::Rng;
use sqlx::{postgres::PgPoolOptions, Connection, Executor, PgConnection, PgPool};
use std::env;
// (The get_database_url and get_root_connection functions remain the same)
fn get_database_url() -> String {
dotenv().ok();
env::var("TEST_DATABASE_URL").expect("TEST_DATABASE_URL must be set")
}
async fn get_root_connection() -> PgConnection {
PgConnection::connect(&get_database_url())
.await
.expect("Failed to create root connection to test database")
}
/// The primary test setup function.
/// Creates a new, unique schema and returns a connection pool that is scoped to that schema.
/// This is the key to test isolation.
pub async fn setup_isolated_db() -> PgPool {
let mut root_conn = get_root_connection().await;
// Make schema names more unique - include timestamp + random
let schema_name = format!(
"test_{}_{}",
@@ -56,7 +54,6 @@ pub async fn setup_isolated_db() -> PgPool {
let schema_name = schema_name.clone();
Box::pin(async move {
conn.execute(format!("SET search_path TO \"{}\", \"default\", \"public\"", schema_name).as_str())
.await?;
Ok(())
})
@@ -83,3 +80,9 @@ pub async fn setup_isolated_db() -> PgPool {
pool
}
/// Compatibility alias for the old function name
/// This allows existing tests to continue working without modification
pub async fn setup_test_db() -> PgPool {
setup_isolated_db().await
}