From be3f7da565713cff7de9c99be090f3130ccaa730 Mon Sep 17 00:00:00 2001 From: stefiosif Date: Sun, 14 Jun 2026 23:38:48 +0300 Subject: [PATCH] fix(backend): skip auth rate limiter in test env --- backend/src/main.rs | 49 +++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/backend/src/main.rs b/backend/src/main.rs index 4980096..294226d 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -11,7 +11,6 @@ use axum::{ extract::DefaultBodyLimit, http::{HeaderValue, Method, header}, middleware, - response::Response, }; use sqlx::PgPool; use tower_cookies::CookieManagerLayer; @@ -49,26 +48,6 @@ async fn main() -> Result<()> { dotenvy::dotenv().ok(); - let governor_conf_auth = GovernorConfigBuilder::default() - .per_second(4) - .burst_size(2) - .key_extractor(SmartIpKeyExtractor) - .finish() - .expect("failed to initialize rate limiter configurations"); - let governor_auth_limiter = governor_conf_auth.limiter().clone(); - let interval = Duration::from_secs(60); - - std::thread::spawn(move || { - loop { - std::thread::sleep(interval); - let len = governor_auth_limiter.len(); - if len > 0 { - info!("rate limiting auth storage size: {len}"); - } - governor_auth_limiter.retain_recent(); - } - }); - let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set"); const BODY_LIMIT: usize = 1000 * 1000 * 1000 * 5; let pool = PgPool::connect(&database_url).await?; @@ -79,8 +58,31 @@ async fn main() -> Result<()> { .layer(DefaultBodyLimit::max(BODY_LIMIT)); let user_repository = UserRepository::new(pool); - let routes_auth = - routes_auth(user_repository.clone()).layer(GovernorLayer::new(governor_conf_auth)); + let mut routes_auth = routes_auth(user_repository.clone()); + + if std::env::var("ENVIRONMENT").unwrap_or_default() != "test" { + let governor_conf_auth = GovernorConfigBuilder::default() + .per_second(4) + .burst_size(2) + .key_extractor(SmartIpKeyExtractor) + .finish() + .expect("failed to initialize rate limiter configurations"); + let governor_auth_limiter = governor_conf_auth.limiter().clone(); + let interval = Duration::from_secs(60); + + std::thread::spawn(move || { + loop { + std::thread::sleep(interval); + let len = governor_auth_limiter.len(); + if len > 0 { + info!("rate limiting auth storage size: {len}"); + } + governor_auth_limiter.retain_recent(); + } + }); + + routes_auth = routes_auth.layer(GovernorLayer::new(governor_conf_auth)); + } let app = Router::new() .nest("/api", routes_file) @@ -114,4 +116,3 @@ async fn main() -> Result<()> { Ok(()) } -