diff --git a/src/event.rs b/src/event.rs index 3d35b5d06..fb7ccad06 100644 --- a/src/event.rs +++ b/src/event.rs @@ -833,9 +833,10 @@ where mod tests { use super::*; use lightning::util::test_utils::{TestLogger, TestStore}; + use std::time::Duration; - #[test] - fn event_queue_persistence() { + #[tokio::test] + async fn event_queue_persistence() { let store = Arc::new(TestStore::new(false)); let logger = Arc::new(TestLogger::new()); let event_queue = EventQueue::new(Arc::clone(&store), Arc::clone(&logger)); @@ -851,6 +852,7 @@ mod tests { // Check we get the expected event and that it is returned until we mark it handled. for _ in 0..5 { assert_eq!(event_queue.wait_next_event(), expected_event); + assert_eq!(event_queue.next_event_async().await, expected_event); assert_eq!(event_queue.next_event(), Some(expected_event.clone())); } @@ -868,5 +870,15 @@ mod tests { event_queue.event_handled().unwrap(); assert_eq!(event_queue.next_event(), None); + + // Check `next_event_async` won't return if the queue is empty and always rather timeout. + tokio::select! { + _ = tokio::time::sleep(Duration::from_secs(1)) => { + // Timeout + } + _ = event_queue.next_event_async() => { + panic!(); + } + } } }