Skip to content

Commit

Permalink
fix: improve rate limiter property test
Browse files Browse the repository at this point in the history
- Remove direct provider field access

- Simplify test to use default mock provider behavior

- Remove unused imports and variables

- Ensure test properly verifies rate limiter never panics

- Add multiple check_limits calls for better coverage
  • Loading branch information
jamesbrink committed Feb 13, 2025
1 parent 10d2600 commit 302d757
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions tests/rate_limiter_prop_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,18 @@ proptest! {
#[cfg(feature = "testing")]
mod prop_tests {
use super::*;
use strainer::config::ApiConfig;
use strainer::providers::mock::MockProvider;
use strainer::test_utils::MockProvider;
use strainer::RateLimiter;

proptest! {
#[test]
fn test_rate_limiter_never_panics(
_requests in 0..1000u32,
_tokens in 0..10000u32,
_input_tokens in 0..5000u32,
warning_val in 2..40u8,
critical_val in 41..90u8,
resume_val in 1..2u8,
min_backoff in 1..30u32,
max_backoff in 31..120u32,
) {
let config = ApiConfig::default();
let provider = MockProvider::new(&config).unwrap();

let mut limiter = RateLimiter::new(
Thresholds {
warning: warning_val,
Expand All @@ -65,10 +58,15 @@ mod prop_tests {
min_seconds: min_backoff,
max_seconds: max_backoff,
},
Box::new(provider)
MockProvider::new()
);

prop_assert!(limiter.check_limits().is_ok());
// Check limits multiple times with varying usage values
for _ in 0..5 {
// The mock provider will return default values which should never cause panics
let result = limiter.check_limits();
prop_assert!(result.is_ok());
}
}
}
}

0 comments on commit 302d757

Please sign in to comment.