@@ -599,6 +599,13 @@ async fn test_sync_resumes_from_previous_state_after_restart() -> Result<(), Err
599
599
let sync = room_list. sync ( ) ;
600
600
pin_mut ! ( sync) ;
601
601
602
+ let all_rooms = room_list. all_rooms ( ) . await ?;
603
+ let mut all_rooms_loading_state = all_rooms. loading_state ( ) ;
604
+
605
+ // The loading is not loaded.
606
+ assert_next_matches ! ( all_rooms_loading_state, RoomListLoadingState :: NotLoaded ) ;
607
+ assert_pending ! ( all_rooms_loading_state) ;
608
+
602
609
sync_then_assert_request_and_fake_response ! {
603
610
[ server, room_list, sync]
604
611
states = Init => SettingUp ,
@@ -627,6 +634,20 @@ async fn test_sync_resumes_from_previous_state_after_restart() -> Result<(), Err
627
634
let sync = room_list. sync ( ) ;
628
635
pin_mut ! ( sync) ;
629
636
637
+ let all_rooms = room_list. all_rooms ( ) . await ?;
638
+ let mut all_rooms_loading_state = all_rooms. loading_state ( ) ;
639
+
640
+ // Wait on Tokio to run all the tasks. Necessary only when testing.
641
+ yield_now ( ) . await ;
642
+
643
+ // We already have a state stored so the list should already be loaded
644
+ assert_next_matches ! (
645
+ all_rooms_loading_state,
646
+ RoomListLoadingState :: Loaded { maximum_number_of_rooms: Some ( 10 ) }
647
+ ) ;
648
+ assert_pending ! ( all_rooms_loading_state) ;
649
+
650
+ // pos has been restored and is used when doing the req
630
651
sync_then_assert_request_and_fake_response ! {
631
652
[ server, room_list, sync]
632
653
states = Init => SettingUp ,
@@ -642,12 +663,22 @@ async fn test_sync_resumes_from_previous_state_after_restart() -> Result<(), Err
642
663
"pos" : "1" ,
643
664
"lists" : {
644
665
ALL_ROOMS : {
645
- "count" : 10 ,
666
+ "count" : 12 ,
646
667
} ,
647
668
} ,
648
669
"rooms" : { } ,
649
670
} ,
650
671
} ;
672
+
673
+ // Wait on Tokio to run all the tasks. Necessary only when testing.
674
+ yield_now ( ) . await ;
675
+
676
+ // maximum_number_of_rooms changed so we should get a new loaded state
677
+ assert_next_matches ! (
678
+ all_rooms_loading_state,
679
+ RoomListLoadingState :: Loaded { maximum_number_of_rooms: Some ( 12 ) }
680
+ ) ;
681
+ assert_pending ! ( all_rooms_loading_state) ;
651
682
}
652
683
653
684
Ok ( ( ) )
@@ -1139,8 +1170,7 @@ async fn test_loading_states() -> Result<(), Error> {
1139
1170
let mut all_rooms_loading_state = all_rooms. loading_state ( ) ;
1140
1171
1141
1172
// The loading is not loaded.
1142
- assert_matches ! ( all_rooms_loading_state. get( ) , RoomListLoadingState :: NotLoaded ) ;
1143
- assert_pending ! ( all_rooms_loading_state) ;
1173
+ assert_next_matches ! ( all_rooms_loading_state, RoomListLoadingState :: NotLoaded ) ;
1144
1174
1145
1175
sync_then_assert_request_and_fake_response ! {
1146
1176
[ server, room_list, sync]
@@ -1246,11 +1276,10 @@ async fn test_loading_states() -> Result<(), Error> {
1246
1276
pin_mut ! ( sync) ;
1247
1277
1248
1278
// The loading state is loaded! Indeed, there is data loaded from the cache.
1249
- assert_matches ! (
1250
- all_rooms_loading_state. get ( ) ,
1279
+ assert_next_matches ! (
1280
+ all_rooms_loading_state,
1251
1281
RoomListLoadingState :: Loaded { maximum_number_of_rooms: Some ( 12 ) }
1252
1282
) ;
1253
- assert_pending ! ( all_rooms_loading_state) ;
1254
1283
1255
1284
sync_then_assert_request_and_fake_response ! {
1256
1285
[ server, room_list, sync]
0 commit comments