|
| 1 | +use assert_matches::assert_matches; |
1 | 2 | use js_int::uint;
|
2 |
| -use matrix_sdk::{config::SyncSettings, test_utils::logged_in_client_with_server}; |
| 3 | +use matrix_sdk::{ |
| 4 | + config::SyncSettings, |
| 5 | + test_utils::{logged_in_client_with_server, mocks::MatrixMockServer}, |
| 6 | +}; |
3 | 7 | use matrix_sdk_base::RoomState;
|
4 | 8 | use matrix_sdk_test::{
|
5 | 9 | async_test, InvitedRoomBuilder, JoinedRoomBuilder, KnockedRoomBuilder, SyncResponseBuilder,
|
@@ -50,6 +54,34 @@ async fn test_room_preview_leave_invited() {
|
50 | 54 | assert_eq!(client.get_room(room_id).unwrap().state(), RoomState::Left);
|
51 | 55 | }
|
52 | 56 |
|
| 57 | +#[async_test] |
| 58 | +async fn test_room_preview_invite_leave_room_summary_msc3266_disabled() { |
| 59 | + let server = MatrixMockServer::new().await; |
| 60 | + let client = server.client_builder().build().await; |
| 61 | + let room_id = room_id!("!room:localhost"); |
| 62 | + |
| 63 | + server.sync_room(&client, InvitedRoomBuilder::new(room_id)).await; |
| 64 | + |
| 65 | + // A preview should be built from the sync data above |
| 66 | + let preview = client |
| 67 | + .get_room_preview(room_id.into(), Vec::new()) |
| 68 | + .await |
| 69 | + .expect("Room preview should be retrieved"); |
| 70 | + |
| 71 | + assert_eq!(preview.room_id, room_id); |
| 72 | + assert_matches!(preview.state.unwrap(), RoomState::Invited); |
| 73 | + |
| 74 | + server.mock_room_leave().ok(room_id).expect(1).mount().await; |
| 75 | + |
| 76 | + client.get_room(room_id).unwrap().leave().await.unwrap(); |
| 77 | + |
| 78 | + assert_matches!(client.get_room(room_id).unwrap().state(), RoomState::Left); |
| 79 | + assert_matches!( |
| 80 | + client.get_room_preview(room_id.into(), Vec::new()).await.unwrap().state.unwrap(), |
| 81 | + RoomState::Left |
| 82 | + ); |
| 83 | +} |
| 84 | + |
53 | 85 | #[async_test]
|
54 | 86 | async fn test_room_preview_leave_knocked() {
|
55 | 87 | let (client, server) = logged_in_client_with_server().await;
|
|
0 commit comments