@@ -669,6 +669,46 @@ impl<'a, T> MockEndpoint<'a, T> {
669669 ) ;
670670 MatrixMock { server : self . server , mock }
671671 }
672+
673+ /// Returns an endpoint that emulates a permanent failure error (e.g. event
674+ /// is too large).
675+ ///
676+ /// # Examples
677+ /// ```
678+ /// # tokio_test::block_on(async {
679+ /// use matrix_sdk::{ruma::{room_id, event_id}, test_utils::mocks::MatrixMockServer};
680+ /// use serde_json::json;
681+ ///
682+ /// let mock_server = MatrixMockServer::new().await;
683+ /// let client = mock_server.client_builder().build().await;
684+ ///
685+ /// mock_server.mock_room_state_encryption().plain().mount().await;
686+ ///
687+ /// let room = mock_server
688+ /// .sync_joined_room(&client, room_id!("!room_id:localhost"))
689+ /// .await;
690+ ///
691+ /// mock_server
692+ /// .mock_room_send()
693+ /// .error_too_large()
694+ /// .expect(1)
695+ /// .mount()
696+ /// .await;
697+ ///
698+ /// room
699+ /// .send_raw("m.room.message", json!({ "body": "Hello world" }))
700+ /// .await.expect_err("The sending of the event should have failed");
701+ /// # anyhow::Ok(()) });
702+ /// ```
703+ pub fn error_too_large ( self ) -> MatrixMock < ' a > {
704+ MatrixMock {
705+ mock : self . mock . respond_with ( ResponseTemplate :: new ( 413 ) . set_body_json ( json ! ( {
706+ // From https://spec.matrix.org/v1.10/client-server-api/#standard-error-response
707+ "errcode" : "M_TOO_LARGE" ,
708+ } ) ) ) ,
709+ server : self . server ,
710+ }
711+ }
672712}
673713
674714/// A prebuilt mock for sending an event in a room.
@@ -759,46 +799,6 @@ impl<'a> MockEndpoint<'a, RoomSendEndpoint> {
759799 pub fn ok ( self , returned_event_id : impl Into < OwnedEventId > ) -> MatrixMock < ' a > {
760800 self . ok_with_event_id ( returned_event_id. into ( ) )
761801 }
762-
763- /// Returns a send endpoint that emulates a permanent failure (event is too
764- /// large).
765- ///
766- /// # Examples
767- /// ```
768- /// # tokio_test::block_on(async {
769- /// use matrix_sdk::{ruma::{room_id, event_id}, test_utils::mocks::MatrixMockServer};
770- /// use serde_json::json;
771- ///
772- /// let mock_server = MatrixMockServer::new().await;
773- /// let client = mock_server.client_builder().build().await;
774- ///
775- /// mock_server.mock_room_state_encryption().plain().mount().await;
776- ///
777- /// let room = mock_server
778- /// .sync_joined_room(&client, room_id!("!room_id:localhost"))
779- /// .await;
780- ///
781- /// mock_server
782- /// .mock_room_send()
783- /// .error500()
784- /// .expect(1)
785- /// .mount()
786- /// .await;
787- ///
788- /// room
789- /// .send_raw("m.room.message", json!({ "body": "Hello world" }))
790- /// .await.expect_err("The sending of the event should have failed");
791- /// # anyhow::Ok(()) });
792- /// ```
793- pub fn error_too_large ( self ) -> MatrixMock < ' a > {
794- MatrixMock {
795- mock : self . mock . respond_with ( ResponseTemplate :: new ( 413 ) . set_body_json ( json ! ( {
796- // From https://spec.matrix.org/v1.10/client-server-api/#standard-error-response
797- "errcode" : "M_TOO_LARGE" ,
798- } ) ) ) ,
799- server : self . server ,
800- }
801- }
802802}
803803
804804/// A prebuilt mock for running sync v2.
0 commit comments