Skip to content

Commit 5fd39fa

Browse files
committed
Test output priority over progress
1 parent 3180146 commit 5fd39fa

File tree

1 file changed

+39
-10
lines changed

1 file changed

+39
-10
lines changed

src/lib.rs

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,7 @@ mod tests {
494494

495495
use tokio::task;
496496
use tokio::test;
497+
use tokio::time;
497498

498499
#[derive(Debug, PartialEq, Eq)]
499500
struct File(Vec<u8>);
@@ -539,11 +540,13 @@ mod tests {
539540

540541
#[test]
541542
async fn it_is_a_stream() {
542-
assert!(download("https://iced.rs/logo.svg")
543-
.collect::<Vec<_>>()
544-
.await
545-
.into_iter()
546-
.eq(0..=100));
543+
assert!(
544+
download("https://iced.rs/logo.svg")
545+
.collect::<Vec<_>>()
546+
.await
547+
.into_iter()
548+
.eq(0..=100)
549+
);
547550
}
548551

549552
#[test]
@@ -555,11 +558,13 @@ mod tests {
555558
let progress = task::spawn(receiver.collect::<Vec<_>>());
556559
let file = download("https://iced.rs/logo.svg").run(sender).await;
557560

558-
assert!(progress
559-
.await
560-
.expect("Collect progress")
561-
.into_iter()
562-
.eq(0..=100));
561+
assert!(
562+
progress
563+
.await
564+
.expect("Collect progress")
565+
.into_iter()
566+
.eq(0..=100)
567+
);
563568

564569
assert_eq!(file, File(vec![1, 2, 3, 4]));
565570
}
@@ -713,4 +718,28 @@ mod tests {
713718
assert_eq!(i, 202);
714719
assert_eq!(files, vec![File(vec![1, 2, 3, 4]), File(vec![1, 2, 3, 4])]);
715720
}
721+
722+
#[test]
723+
async fn it_prioritizes_output_over_progress() {
724+
let mut infinite_progress = sipper(|progress| async move {
725+
drop(task::spawn({
726+
let mut progress = progress.clone();
727+
728+
async move {
729+
loop {
730+
progress.send(0).await;
731+
732+
time::sleep(time::Duration::from_secs(1)).await;
733+
}
734+
}
735+
}));
736+
737+
true
738+
})
739+
.pin();
740+
741+
while infinite_progress.sip().await.is_some() {}
742+
743+
assert!(infinite_progress.await);
744+
}
716745
}

0 commit comments

Comments
 (0)