@@ -675,20 +675,14 @@ async fn test_send_edit_poll() {
675675
676676#[ async_test]
677677async fn test_send_edit_when_timeline_is_clear ( ) {
678- let room_id = room_id ! ( "!a98sd12bjh:example.org" ) ;
679- let ( client, server) = logged_in_client_with_server ( ) . await ;
680- let sync_settings = SyncSettings :: new ( ) . timeout ( Duration :: from_millis ( 3000 ) ) ;
681-
682- let mut sync_builder = SyncResponseBuilder :: new ( ) ;
683- sync_builder. add_joined_room ( JoinedRoomBuilder :: new ( room_id) ) ;
678+ let server = MatrixMockServer :: new ( ) . await ;
679+ let client = server. client_builder ( ) . build ( ) . await ;
684680
685- mock_sync ( & server, sync_builder. build_json_sync_response ( ) , None ) . await ;
686- let _response = client. sync_once ( sync_settings. clone ( ) ) . await . unwrap ( ) ;
687- server. reset ( ) . await ;
681+ let room_id = room_id ! ( "!a98sd12bjh:example.org" ) ;
682+ let room = server. sync_joined_room ( & client, room_id) . await ;
688683
689- mock_encryption_state ( & server, false ) . await ;
684+ server. mock_room_state_encryption ( ) . plain ( ) . mount ( ) . await ;
690685
691- let room = client. get_room ( room_id) . unwrap ( ) ;
692686 let timeline = room. timeline ( ) . await . unwrap ( ) ;
693687 let ( _, mut timeline_stream) =
694688 timeline. subscribe_filter_map ( |item| item. as_event ( ) . cloned ( ) ) . await ;
@@ -699,23 +693,27 @@ async fn test_send_edit_when_timeline_is_clear() {
699693 . sender ( client. user_id ( ) . unwrap ( ) )
700694 . event_id ( event_id ! ( "$original_event" ) )
701695 . into_raw_sync ( ) ;
702- sync_builder. add_joined_room (
703- JoinedRoomBuilder :: new ( room_id) . add_timeline_event ( raw_original_event. clone ( ) ) ,
704- ) ;
705696
706- mock_sync ( & server, sync_builder. build_json_sync_response ( ) , None ) . await ;
707- let _response = client. sync_once ( sync_settings. clone ( ) ) . await . unwrap ( ) ;
708- server. reset ( ) . await ;
697+ server
698+ . sync_room (
699+ & client,
700+ JoinedRoomBuilder :: new ( room_id) . add_timeline_event ( raw_original_event. clone ( ) ) ,
701+ )
702+ . await ;
709703
710704 let hello_world_item =
711705 assert_next_matches ! ( timeline_stream, VectorDiff :: PushBack { value } => value) ;
712706 let hello_world_message = hello_world_item. content ( ) . as_message ( ) . unwrap ( ) ;
713707 assert ! ( !hello_world_message. is_edited( ) ) ;
714708 assert ! ( hello_world_item. is_editable( ) ) ;
715709
716- // Clear the event cache (hence the timeline) to make sure the old item does not
717- // need to be available in it for the edit to work.
718- client. event_cache ( ) . add_initial_events ( room_id, vec ! [ ] , None ) . await . unwrap ( ) ;
710+ // Receive a limited (gappy) sync for this room, which will clear the timeline…
711+ //
712+ // TODO: …until the event cache storage is enabled by default, a time where
713+ // we'll be able to get rid of this test entirely (or update its
714+ // expectations).
715+
716+ server. sync_room ( & client, JoinedRoomBuilder :: new ( room_id) . set_timeline_limited ( ) ) . await ;
719717 client. event_cache ( ) . empty_immutable_cache ( ) . await ;
720718
721719 yield_now ( ) . await ;
@@ -741,8 +739,7 @@ async fn test_send_edit_when_timeline_is_clear() {
741739 // updates, so just wait for a bit before verifying that the endpoint was
742740 // called.
743741 sleep ( Duration :: from_millis ( 200 ) ) . await ;
744-
745- server. verify ( ) . await ;
742+ assert ! ( timeline_stream. next( ) . now_or_never( ) . is_none( ) ) ;
746743}
747744
748745#[ async_test]
0 commit comments