1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-07-31 13:44:28 +03:00

Introduce Membership type

This commit is contained in:
Stanislav Demydiuk
2024-03-11 17:16:53 +00:00
committed by Andy Balaam
parent 3c6fd58628
commit da99bad7b9
115 changed files with 582 additions and 526 deletions

View File

@ -37,16 +37,16 @@ function assertLocalRoom(room: LocalRoom, targets: Member[], encrypted: boolean)
expect(room.name).toBe(targets.length ? targets[0].name : "Empty Room");
expect(room.encrypted).toBe(encrypted);
expect(room.targets).toEqual(targets);
expect(room.getMyMembership()).toBe("join");
expect(room.getMyMembership()).toBe(Membership.Join);
const roomCreateEvent = room.currentState.getStateEvents(EventType.RoomCreate)[0];
expect(roomCreateEvent).toBeDefined();
expect(roomCreateEvent.getContent()["room_version"]).toBe(KNOWN_SAFE_ROOM_VERSION);
// check that the user and all targets are joined
expect(room.getMember("@userId:matrix.org")?.membership).toBe("join");
expect(room.getMember("@userId:matrix.org").membership).toBe(Membership.Join);
targets.forEach((target: Member) => {
expect(room.getMember(target.userId)?.membership).toBe("join");
expect(room.getMember(target.userId).membership).toBe(Membership.Join);
});
if (encrypted) {

View File

@ -51,32 +51,32 @@ describe("findDMForUser", () => {
mocked(getFunctionalMembers).mockReturnValue([botId]);
room1 = new Room("!room1:example.com", mockClient, userId1);
room1.getMyMembership = () => "join";
room1.getMyMembership = () => Membership.Join;
room1.currentState.setStateEvents([
makeMembershipEvent(room1.roomId, userId1, "join"),
makeMembershipEvent(room1.roomId, userId2, "join"),
makeMembershipEvent(room1.roomId, userId1, Membership.Join),
makeMembershipEvent(room1.roomId, userId2, Membership.Join),
]);
// this should not be a DM room because it is a local room
room2 = new LocalRoom("!room2:example.com", mockClient, userId1);
room2.getMyMembership = () => "join";
room2.getMyMembership = () => Membership.Join;
room2.getLastActiveTimestamp = () => 100;
room3 = new Room("!room3:example.com", mockClient, userId1);
room3.getMyMembership = () => "join";
room3.getMyMembership = () => Membership.Join;
room3.currentState.setStateEvents([
makeMembershipEvent(room3.roomId, userId1, "join"),
makeMembershipEvent(room3.roomId, userId2, "join"),
makeMembershipEvent(room3.roomId, userId1, Membership.Join),
makeMembershipEvent(room3.roomId, userId2, Membership.Join),
// Adding the bot user here. Should be excluded when determining if the room is a DM.
makeMembershipEvent(room3.roomId, botId, "join"),
makeMembershipEvent(room3.roomId, botId, Membership.Join),
]);
// this should not be a DM room because it has only one joined user
room4 = new Room("!room4:example.com", mockClient, userId1);
room4.getMyMembership = () => "join";
room4.getMyMembership = () => Membership.Join;
room4.currentState.setStateEvents([
makeMembershipEvent(room4.roomId, userId1, "invite"),
makeMembershipEvent(room4.roomId, userId2, "join"),
makeMembershipEvent(room4.roomId, userId1, Membership.Invite),
makeMembershipEvent(room4.roomId, userId2, Membership.Join),
]);
// this should not be a DM room because it has no users
@ -85,17 +85,17 @@ describe("findDMForUser", () => {
// room not correctly stored in userId → room map; should be found by the "all rooms" fallback
room6 = new Room("!room6:example.com", mockClient, userId1);
room6.getMyMembership = () => "join";
room6.getMyMembership = () => Membership.Join;
room6.currentState.setStateEvents([
makeMembershipEvent(room6.roomId, userId1, "join"),
makeMembershipEvent(room6.roomId, userId3, "join"),
makeMembershipEvent(room6.roomId, userId1, Membership.Join),
makeMembershipEvent(room6.roomId, userId3, Membership.Join),
]);
// room with pending third-party invite
room7 = new Room("!room7:example.com", mockClient, userId1);
room7.getMyMembership = () => "join";
room7.getMyMembership = () => Membership.Join;
room7.currentState.setStateEvents([
makeMembershipEvent(room7.roomId, userId1, "join"),
makeMembershipEvent(room7.roomId, userId1, Membership.Join),
mkThirdPartyInviteEvent(thirdPartyId, "third-party", room7.roomId),
]);