Skip to content

Commit 7a93c57

Browse files
committed
Non working tests
1 parent 1bd2566 commit 7a93c57

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

crates/matrix-sdk-base/src/room/members.rs

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,10 +482,26 @@ pub fn normalize_power_level(power_level: Int, max_power_level: i64) -> Int {
482482

483483
#[cfg(test)]
484484
mod tests {
485+
use std::sync::Arc;
486+
485487
use proptest::prelude::*;
486488

489+
use matrix_sdk_test::{async_test, event_factory::EventFactory};
490+
use ruma::{room_id, user_id};
491+
487492
use super::*;
488493

494+
use crate::{RoomState, StateChanges, StateStore, store::MemoryStore};
495+
496+
fn make_room_test_helper(room_type: RoomState) -> (Arc<MemoryStore>, Room) {
497+
let store = Arc::new(MemoryStore::new());
498+
let user_id = user_id!("@me:example.org");
499+
let room_id = room_id!("!test:localhost");
500+
let (sender, _receiver) = tokio::sync::broadcast::channel(1);
501+
502+
(store.clone(), Room::new(user_id, store, room_id, room_type, sender))
503+
}
504+
489505
prop_compose! {
490506
fn arb_int()(id in any::<i64>()) -> Int {
491507
id.try_into().unwrap_or_default()
@@ -530,4 +546,79 @@ mod tests {
530546
assert!(normalized >= 0);
531547
assert!(normalized <= 100);
532548
}
549+
550+
#[async_test]
551+
async fn test_room_member_from_parts() {
552+
let (store, room) = make_room_test_helper(RoomState::Joined);
553+
554+
let carol = user_id!("@carol:example.org");
555+
let denis = user_id!("@denis:example.org");
556+
let erica = user_id!("@erica:example.org");
557+
let fred = user_id!("@fred:example.org");
558+
let fredo = user_id!("@fredo:example.org");
559+
let bob = user_id!("@bob:example.org");
560+
let julie = user_id!("@julie:example.org");
561+
let me = user_id!("@me:example.org");
562+
let mewto = user_id!("@mewto:example.org");
563+
564+
let mut changes = StateChanges::new("".to_owned());
565+
566+
let f = EventFactory::new().room(room_id!("!test:localhost"));
567+
568+
{
569+
let members = changes
570+
.state
571+
.entry(room.room_id().to_owned())
572+
.or_default()
573+
.entry(StateEventType::RoomMember)
574+
.or_default();
575+
members.insert(carol.into(), f.member(carol).display_name("Carol").into());
576+
577+
members.insert(fred.into(), f.member(fred).display_name("Fred").into());
578+
members.insert(
579+
fredo.into(),
580+
f.member(fredo).display_name("Fred").membership(MembershipState::Knock).into(),
581+
);
582+
members.insert(
583+
denis.into(),
584+
f.member(denis).display_name("Fred").membership(MembershipState::Leave).into(),
585+
);
586+
members.insert(
587+
erica.into(),
588+
f.member(erica).display_name("Fred").membership(MembershipState::Ban).into(),
589+
);
590+
591+
members.insert(
592+
bob.into(),
593+
f.member(bob).display_name("Bob").membership(MembershipState::Invite).into(),
594+
);
595+
members.insert(julie.into(), f.member(me).display_name("Bob").into());
596+
597+
members.insert(me.into(), f.member(me).display_name("Me").into());
598+
members.insert(mewto.into(), f.member(mewto).display_name("Me").into());
599+
600+
store.save_changes(&changes).await.unwrap();
601+
}
602+
603+
assert!(!room.get_member(carol).await.unwrap().expect("Carol user").name_ambiguous());
604+
605+
assert!(!room.get_member(fred).await.unwrap().expect("Fred user").name_ambiguous());
606+
assert!(!room.get_member(fredo).await.unwrap().expect("Fredo user").name_ambiguous());
607+
assert!(!room.get_member(denis).await.unwrap().expect("Denis user").name_ambiguous());
608+
assert!(!room.get_member(erica).await.unwrap().expect("Erica user").name_ambiguous());
609+
610+
assert!(!room.get_member(bob).await.unwrap().expect("Bob user").name_ambiguous());
611+
612+
assert!(!room.get_member(julie).await.unwrap().expect("Julie user").name_ambiguous());
613+
assert!(!room.get_member(bob).await.unwrap().expect("Bob user").name_ambiguous());
614+
615+
assert_eq!(room.get_member(me).await.unwrap().expect("Me user").display_name(), Some("Me"));
616+
assert_eq!(
617+
room.get_member(mewto).await.unwrap().expect("Mewto user").display_name(),
618+
Some("Me")
619+
);
620+
621+
assert!(room.get_member(me).await.unwrap().expect("Me user").name_ambiguous());
622+
assert!(room.get_member(mewto).await.unwrap().expect("Mewto user").name_ambiguous());
623+
}
533624
}

0 commit comments

Comments
 (0)