tests are passing better than ever before, its looking decent actually nowc

This commit is contained in:
filipriec
2025-06-21 16:18:32 +02:00
parent 714a5f2f1c
commit 298f56a53c
4 changed files with 42 additions and 16 deletions

View File

@@ -15,16 +15,10 @@ use std::env;
use dotenvy;
use std::path::Path;
// ===================================================================
// SPECIALIZED SETUP FOR `table_definition` TESTS
// This setup logic is now local to this file and will not affect other tests.
// ===================================================================
async fn setup_isolated_gen_schema_db() -> PgPool {
// ---- ADD THIS BLOCK TO LOAD THE .env_test FILE ----
let manifest_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR must be set");
let env_path = Path::new(&manifest_dir).join(".env_test");
dotenvy::from_path(env_path).ok();
// ----------------------------------------------------
let database_url = env::var("TEST_DATABASE_URL").expect("TEST_DATABASE_URL must be set");
@@ -38,17 +32,37 @@ async fn setup_isolated_gen_schema_db() -> PgPool {
);
let mut root_conn = PgConnection::connect(&database_url).await.unwrap();
// Create the test schema
root_conn
.execute(format!("CREATE SCHEMA \"{}\"", unique_schema_name).as_str())
.await
.unwrap();
// Create schemas A and B for cross-profile tests
root_conn
.execute("CREATE SCHEMA IF NOT EXISTS \"A\"")
.await
.unwrap();
root_conn
.execute("CREATE SCHEMA IF NOT EXISTS \"B\"")
.await
.unwrap();
// IMPORTANT: Create the "default" schema if it doesn't exist
root_conn
.execute("CREATE SCHEMA IF NOT EXISTS \"default\"")
.await
.unwrap();
let pool = PgPoolOptions::new()
.max_connections(5)
.after_connect(move |conn, _meta| {
let schema = unique_schema_name.clone();
Box::pin(async move {
conn.execute(format!("SET search_path = '{}'", schema).as_str())
// Set search path to include test schema, default, A, B, and public
conn.execute(format!("SET search_path = '{}', 'default', 'A', 'B', 'public'", schema).as_str())
.await?;
Ok(())
})
@@ -62,10 +76,13 @@ async fn setup_isolated_gen_schema_db() -> PgPool {
.await
.expect("Migrations failed in isolated schema");
sqlx::query!("INSERT INTO schemas (name) VALUES ('default') ON CONFLICT (name) DO NOTHING")
.execute(&pool)
.await
.expect("Failed to insert test schema in isolated schema");
// Insert into the schemas table - use INSERT ... ON CONFLICT to avoid duplicates
sqlx::query!(
"INSERT INTO schemas (name) VALUES ('default'), ('A'), ('B') ON CONFLICT (name) DO NOTHING"
)
.execute(&pool)
.await
.expect("Failed to insert test schemas");
pool
}