summaryrefslogtreecommitdiff
path: root/tests/watch.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/watch.rs')
-rw-r--r--tests/watch.rs30
1 files changed, 29 insertions, 1 deletions
diff --git a/tests/watch.rs b/tests/watch.rs
index a56254e..3a39aaf 100644
--- a/tests/watch.rs
+++ b/tests/watch.rs
@@ -3,9 +3,11 @@
use tokio::sync::watch;
use tokio_stream::wrappers::WatchStream;
use tokio_stream::StreamExt;
+use tokio_test::assert_pending;
+use tokio_test::task::spawn;
#[tokio::test]
-async fn message_not_twice() {
+async fn watch_stream_message_not_twice() {
let (tx, rx) = watch::channel("hello");
let mut counter = 0;
@@ -27,3 +29,29 @@ async fn message_not_twice() {
drop(tx);
task.await.unwrap();
}
+
+#[tokio::test]
+async fn watch_stream_from_rx() {
+ let (tx, rx) = watch::channel("hello");
+
+ let mut stream = WatchStream::from(rx);
+
+ assert_eq!(stream.next().await.unwrap(), "hello");
+
+ tx.send("bye").unwrap();
+
+ assert_eq!(stream.next().await.unwrap(), "bye");
+}
+
+#[tokio::test]
+async fn watch_stream_from_changes() {
+ let (tx, rx) = watch::channel("hello");
+
+ let mut stream = WatchStream::from_changes(rx);
+
+ assert_pending!(spawn(&mut stream).poll_next());
+
+ tx.send("bye").unwrap();
+
+ assert_eq!(stream.next().await.unwrap(), "bye");
+}