fix(backend): skip auth rate limiter in test env

This commit is contained in:
2026-06-14 23:38:48 +03:00
parent 91459db5ec
commit be3f7da565

View File

@@ -11,7 +11,6 @@ use axum::{
extract::DefaultBodyLimit, extract::DefaultBodyLimit,
http::{HeaderValue, Method, header}, http::{HeaderValue, Method, header},
middleware, middleware,
response::Response,
}; };
use sqlx::PgPool; use sqlx::PgPool;
use tower_cookies::CookieManagerLayer; use tower_cookies::CookieManagerLayer;
@@ -49,26 +48,6 @@ async fn main() -> Result<()> {
dotenvy::dotenv().ok(); 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"); let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
const BODY_LIMIT: usize = 1000 * 1000 * 1000 * 5; const BODY_LIMIT: usize = 1000 * 1000 * 1000 * 5;
let pool = PgPool::connect(&database_url).await?; let pool = PgPool::connect(&database_url).await?;
@@ -79,8 +58,31 @@ async fn main() -> Result<()> {
.layer(DefaultBodyLimit::max(BODY_LIMIT)); .layer(DefaultBodyLimit::max(BODY_LIMIT));
let user_repository = UserRepository::new(pool); let user_repository = UserRepository::new(pool);
let routes_auth = let mut routes_auth = routes_auth(user_repository.clone());
routes_auth(user_repository.clone()).layer(GovernorLayer::new(governor_conf_auth));
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() let app = Router::new()
.nest("/api", routes_file) .nest("/api", routes_file)
@@ -114,4 +116,3 @@ async fn main() -> Result<()> {
Ok(()) Ok(())
} }