diff --git a/limitador-server/src/config.rs b/limitador-server/src/config.rs index af319b2d..7e9e6aeb 100644 --- a/limitador-server/src/config.rs +++ b/limitador-server/src/config.rs @@ -123,6 +123,21 @@ fn storage_config_from_env() -> Result { } } +#[cfg(test)] +impl Default for Configuration { + fn default() -> Self { + Configuration { + limits_file: "".to_string(), + storage: StorageConfiguration::InMemory, + rls_host: "".to_string(), + rls_port: 0, + http_host: "".to_string(), + http_port: 0, + limit_name_in_labels: false, + } + } +} + fn env_option_is_enabled(env_name: &str) -> bool { match env::var(env_name) { Ok(value) => value == "1", @@ -190,6 +205,8 @@ mod tests { #[test] #[serial] fn test_config_defaults() { + let mut vars = VarEnvCleaner::new(); + vars.set_var("LIMITS_FILE", "limitador-server/examples/limit.yaml"); let config = Configuration::from_env().unwrap(); assert_eq!(&config.limits_file, ""); assert_eq!(config.storage, StorageConfiguration::InMemory); @@ -203,6 +220,7 @@ mod tests { fn test_config_redis_defaults() { let mut vars = VarEnvCleaner::new(); let url = "redis://127.0.1.1:7654"; + vars.set_var("LIMITS_FILE", "limitador-server/examples/limit.yaml"); vars.set_var("REDIS_URL", url); let config = Configuration::from_env().unwrap(); @@ -222,6 +240,7 @@ mod tests { #[serial] fn test_config_infinispan_defaults() { let mut vars = VarEnvCleaner::new(); + vars.set_var("LIMITS_FILE", "limitador-server/examples/limit.yaml"); let url = "127.0.2.2:9876"; vars.set_var("INFINISPAN_URL", url); diff --git a/limitador-server/src/envoy_rls/server.rs b/limitador-server/src/envoy_rls/server.rs index e51352e4..8a6aa8de 100644 --- a/limitador-server/src/envoy_rls/server.rs +++ b/limitador-server/src/envoy_rls/server.rs @@ -196,9 +196,7 @@ mod tests { async fn test_returns_ok_when_no_limits_apply() { // No limits saved let rate_limiter = MyRateLimiter::new(Arc::new( - Limiter::new(Configuration::from_env().unwrap()) - .await - .unwrap(), + Limiter::new(Configuration::default()).await.unwrap(), )); let req = RateLimitRequest { @@ -228,9 +226,7 @@ mod tests { #[tokio::test] async fn test_returns_unknown_when_domain_is_empty() { let rate_limiter = MyRateLimiter::new(Arc::new( - Limiter::new(Configuration::from_env().unwrap()) - .await - .unwrap(), + Limiter::new(Configuration::default()).await.unwrap(), )); let req = RateLimitRequest { diff --git a/limitador-server/src/http_api/server.rs b/limitador-server/src/http_api/server.rs index 88345f10..848bc6ad 100644 --- a/limitador-server/src/http_api/server.rs +++ b/limitador-server/src/http_api/server.rs @@ -225,11 +225,8 @@ mod tests { #[actix_rt::test] async fn test_metrics() { - let rate_limiter: Arc = Arc::new( - Limiter::new(Configuration::from_env().unwrap()) - .await - .unwrap(), - ); + let rate_limiter: Arc = + Arc::new(Limiter::new(Configuration::default()).await.unwrap()); let data = web::Data::new(rate_limiter); let app = test::init_service( App::new() @@ -249,9 +246,7 @@ mod tests { #[actix_rt::test] async fn test_limits_read() { - let limiter = Limiter::new(Configuration::from_env().unwrap()) - .await - .unwrap(); + let limiter = Limiter::new(Configuration::default()).await.unwrap(); let namespace = "test_namespace"; let limit = create_test_limit(&limiter, namespace, 10).await; @@ -276,9 +271,7 @@ mod tests { #[actix_rt::test] async fn test_check_and_report() { - let limiter = Limiter::new(Configuration::from_env().unwrap()) - .await - .unwrap(); + let limiter = Limiter::new(Configuration::default()).await.unwrap(); // Create a limit with max == 1 let namespace = "test_namespace"; @@ -324,9 +317,7 @@ mod tests { #[actix_rt::test] async fn test_check_and_report_endpoints_separately() { let namespace = "test_namespace"; - let limiter = Limiter::new(Configuration::from_env().unwrap()) - .await - .unwrap(); + let limiter = Limiter::new(Configuration::default()).await.unwrap(); let _limit = create_test_limit(&limiter, namespace, 1).await; let rate_limiter: Arc = Arc::new(limiter);