@@ -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