()
| 187 | |
| 188 | #[test] |
| 189 | fn enqueue_and_drain() { |
| 190 | let mut q = TriggerRetryQueue::new(); |
| 191 | let mut entry = make_entry("t1"); |
| 192 | entry.next_retry_at = Instant::now() - Duration::from_secs(1); // already due |
| 193 | q.enqueue(entry); |
| 194 | |
| 195 | // Wait a tiny bit for backoff (100ms for attempt 1). |
| 196 | std::thread::sleep(Duration::from_millis(110)); |
| 197 | |
| 198 | let (ready, exhausted) = q.drain_due(); |
| 199 | assert_eq!(ready.len(), 1); |
| 200 | assert!(exhausted.is_empty()); |
| 201 | assert_eq!(ready[0].attempts, 1); |
| 202 | } |
| 203 | |
| 204 | #[test] |
| 205 | fn exhausted_after_max_retries() { |
nothing calls this directly
no test coverage detected