From 5094b3cb468bed0eafeb05d1f283f0a06bae9123 Mon Sep 17 00:00:00 2001 From: Mika Date: Tue, 17 Jun 2025 14:02:29 +0200 Subject: [PATCH] refactor: replace println with debug logging in tests for better log management --- crates/backend/tests/common/mod.rs | 44 +++++++++++--------------- crates/backend/tests/endpoints/auth.rs | 5 +-- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/crates/backend/tests/common/mod.rs b/crates/backend/tests/common/mod.rs index 1c3fda3..5a14c83 100644 --- a/crates/backend/tests/common/mod.rs +++ b/crates/backend/tests/common/mod.rs @@ -1,6 +1,10 @@ use backend::{Database, build_database_url}; +use log::{debug, info}; use migration::{Migrator, MigratorTrait}; -use testcontainers::{ContainerAsync, ImageExt, runners::AsyncRunner}; +use testcontainers::{ + ContainerAsync, ImageExt, core::logs::consumer::logging_consumer::LoggingConsumer, + runners::AsyncRunner, +}; use testcontainers_modules::{postgres::Postgres, redis::Redis}; pub mod test_helpers; @@ -22,8 +26,8 @@ pub async fn setup() -> (ContainerAsync, ContainerAsync, Databa let postgres_port = postgres.get_host_port_ipv4(5432).await.unwrap(); let redis_port = redis.get_host_port_ipv4(6379).await.unwrap(); - println!("PostgreSQL container started on port: {}", postgres_port); - println!("Redis container started on port: {}", redis_port); + debug!("PostgreSQL container started on port: {}", postgres_port); + debug!("Redis container started on port: {}", redis_port); // Wait for PostgreSQL to be ready wait_for_postgres_ready(&postgres).await; @@ -39,7 +43,7 @@ pub async fn setup() -> (ContainerAsync, ContainerAsync, Databa } let database_url = build_database_url(); - println!("Database URL: {}", database_url); + info!("Database URL: {}", database_url); let database = Database::new(database_url.into()).await.unwrap(); @@ -49,32 +53,22 @@ pub async fn setup() -> (ContainerAsync, ContainerAsync, Databa } async fn wait_for_postgres_ready(container: &ContainerAsync) { - use sea_orm::{Database as SeaOrmDatabase, DbErr}; - - println!("Waiting for PostgreSQL to be ready..."); - - let postgres_port = container.get_host_port_ipv4(5432).await.unwrap(); - let connection_string = format!( - "postgresql://postgres:postgres@127.0.0.1:{}/test_db", - postgres_port - ); + info!("Waiting for PostgreSQL to be ready..."); for attempt in 1..=30 { - match SeaOrmDatabase::connect(&connection_string).await { - Ok(conn) => match conn.ping().await { - Ok(_) => { - println!("PostgreSQL is ready after {} attempts", attempt); + match container.stdout_to_vec().await { + Ok(logs) => { + let log_string = String::from_utf8_lossy(&logs); + + if log_string.contains("database system is ready to accept connections") { + info!("PostgreSQL is ready after {} attempts", attempt); return; } - Err(_) => { - println!("Attempt {}: PostgreSQL connection failed ping", attempt); - } - }, - Err(DbErr::Conn(_)) => { - println!("Attempt {}: PostgreSQL connection refused", attempt); + + debug!("Attempt {}: PostgreSQL not ready yet", attempt); } - Err(_) => { - println!("Attempt {}: PostgreSQL other error", attempt); + Err(e) => { + debug!("Attempt {}: Failed to read logs: {}", attempt, e); } } diff --git a/crates/backend/tests/endpoints/auth.rs b/crates/backend/tests/endpoints/auth.rs index 932c848..1f9212c 100644 --- a/crates/backend/tests/endpoints/auth.rs +++ b/crates/backend/tests/endpoints/auth.rs @@ -6,6 +6,7 @@ use crate::common::test_helpers::get_database; #[cfg(test)] mod tests { + use log::debug; use serde_json::json; use super::*; @@ -46,8 +47,8 @@ mod tests { let body = test::read_body(req).await; let body_str = String::from_utf8_lossy(&body); - println!("Response status: {}", status); - println!("Response body: {}", body_str); + debug!("Response status: {}", status); + debug!("Response body: {}", body_str); assert!(status.is_success() || status.is_client_error()); }