Skip to content

Commit e1d78c0

Browse files
committed
test(base): Add store test for room removal
1 parent 76d1b6e commit e1d78c0

File tree

2 files changed

+100
-2
lines changed

2 files changed

+100
-2
lines changed

crates/matrix-sdk-base/src/store/memory_store.rs

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,8 @@ mod test {
624624
use crate::{
625625
media::{MediaFormat, MediaRequest, MediaThumbnailSize, MediaType},
626626
store::test::{
627-
first_receipt_event_id, populated_store, room_id, second_receipt_event_id, user_id,
627+
first_receipt_event_id, populated_store, room_id, second_receipt_event_id,
628+
stripped_room_id, user_id,
628629
},
629630
};
630631

@@ -797,4 +798,52 @@ mod test {
797798
1
798799
);
799800
}
801+
802+
#[async_test]
803+
async fn test_room_removal() {
804+
let room_id = room_id();
805+
let user_id = user_id();
806+
let stripped_room_id = stripped_room_id();
807+
808+
let store = populated_store(Box::new(MemoryStore::new())).await.unwrap();
809+
810+
// We assume the store was correctly populated like the test above.
811+
812+
store.remove_room(room_id).await.unwrap();
813+
814+
assert_eq!(store.get_room_infos().await.unwrap().len(), 1);
815+
assert_eq!(store.get_stripped_room_infos().await.unwrap().len(), 1);
816+
817+
assert!(store.get_state_event(room_id, EventType::RoomName, "").await.unwrap().is_none());
818+
assert_eq!(store.get_state_events(room_id, EventType::RoomTopic).await.unwrap().len(), 0);
819+
assert!(store.get_profile(room_id, user_id).await.unwrap().is_none());
820+
assert!(store.get_member_event(room_id, user_id).await.unwrap().is_none());
821+
assert_eq!(store.get_user_ids(room_id).await.unwrap().len(), 0);
822+
assert_eq!(store.get_invited_user_ids(room_id).await.unwrap().len(), 0);
823+
assert_eq!(store.get_joined_user_ids(room_id).await.unwrap().len(), 0);
824+
assert_eq!(store.get_users_with_display_name(room_id, "example").await.unwrap().len(), 0);
825+
assert!(store
826+
.get_room_account_data_event(room_id, EventType::Tag)
827+
.await
828+
.unwrap()
829+
.is_none());
830+
assert!(store
831+
.get_user_room_receipt_event(room_id, ReceiptType::Read, user_id)
832+
.await
833+
.unwrap()
834+
.is_none());
835+
assert_eq!(
836+
store
837+
.get_event_room_receipt_events(room_id, ReceiptType::Read, first_receipt_event_id())
838+
.await
839+
.unwrap()
840+
.len(),
841+
0
842+
);
843+
844+
store.remove_room(stripped_room_id).await.unwrap();
845+
846+
assert_eq!(store.get_room_infos().await.unwrap().len(), 0);
847+
assert_eq!(store.get_stripped_room_infos().await.unwrap().len(), 0);
848+
}
800849
}

crates/matrix-sdk-base/src/store/sled_store/mod.rs

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1128,7 +1128,8 @@ mod test {
11281128
deserialized_responses::MemberEvent,
11291129
media::{MediaFormat, MediaRequest, MediaThumbnailSize, MediaType},
11301130
store::test::{
1131-
first_receipt_event_id, populated_store, room_id, second_receipt_event_id, user_id,
1131+
first_receipt_event_id, populated_store, room_id, second_receipt_event_id,
1132+
stripped_room_id, user_id,
11321133
},
11331134
StateStore,
11341135
};
@@ -1366,4 +1367,52 @@ mod test {
13661367
1
13671368
);
13681369
}
1370+
1371+
#[async_test]
1372+
async fn test_room_removal() {
1373+
let room_id = room_id();
1374+
let user_id = user_id();
1375+
let stripped_room_id = stripped_room_id();
1376+
1377+
let store = populated_store(Box::new(SledStore::open().unwrap())).await.unwrap();
1378+
1379+
// We assume the store was correctly populated like the test above.
1380+
1381+
store.remove_room(room_id).await.unwrap();
1382+
1383+
assert_eq!(store.get_room_infos().await.unwrap().len(), 1);
1384+
assert_eq!(store.get_stripped_room_infos().await.unwrap().len(), 1);
1385+
1386+
assert!(store.get_state_event(room_id, EventType::RoomName, "").await.unwrap().is_none());
1387+
assert_eq!(store.get_state_events(room_id, EventType::RoomTopic).await.unwrap().len(), 0);
1388+
assert!(store.get_profile(room_id, user_id).await.unwrap().is_none());
1389+
assert!(store.get_member_event(room_id, user_id).await.unwrap().is_none());
1390+
assert_eq!(store.get_user_ids(room_id).await.unwrap().len(), 0);
1391+
assert_eq!(store.get_invited_user_ids(room_id).await.unwrap().len(), 0);
1392+
assert_eq!(store.get_joined_user_ids(room_id).await.unwrap().len(), 0);
1393+
assert_eq!(store.get_users_with_display_name(room_id, "example").await.unwrap().len(), 0);
1394+
assert!(store
1395+
.get_room_account_data_event(room_id, EventType::Tag)
1396+
.await
1397+
.unwrap()
1398+
.is_none());
1399+
assert!(store
1400+
.get_user_room_receipt_event(room_id, ReceiptType::Read, user_id)
1401+
.await
1402+
.unwrap()
1403+
.is_none());
1404+
assert_eq!(
1405+
store
1406+
.get_event_room_receipt_events(room_id, ReceiptType::Read, first_receipt_event_id())
1407+
.await
1408+
.unwrap()
1409+
.len(),
1410+
0
1411+
);
1412+
1413+
store.remove_room(stripped_room_id).await.unwrap();
1414+
1415+
assert_eq!(store.get_room_infos().await.unwrap().len(), 0);
1416+
assert_eq!(store.get_stripped_room_infos().await.unwrap().len(), 0);
1417+
}
13691418
}

0 commit comments

Comments
 (0)