Add more tests
This commit is contained in:
@@ -707,6 +707,100 @@ class SlidingSyncPrePopulatedTablesTestCase(HomeserverTestCase):
|
||||
exact=True,
|
||||
)
|
||||
|
||||
def test_joined_room_with_info_updated(self) -> None:
|
||||
"""
|
||||
Test info in `sliding_sync_joined_rooms` is updated when the current state is
|
||||
updated.
|
||||
"""
|
||||
user1_id = self.register_user("user1", "pass")
|
||||
user1_tok = self.login(user1_id, "pass")
|
||||
user2_id = self.register_user("user2", "pass")
|
||||
user2_tok = self.login(user2_id, "pass")
|
||||
|
||||
room_id1 = self.helper.create_room_as(user2_id, tok=user2_tok)
|
||||
# Add a room name
|
||||
self.helper.send_state(
|
||||
room_id1,
|
||||
EventTypes.Name,
|
||||
{"name": "my super duper room"},
|
||||
tok=user2_tok,
|
||||
)
|
||||
|
||||
# User1 joins the room
|
||||
self.helper.join(room_id1, user1_id, tok=user1_tok)
|
||||
|
||||
sliding_sync_joined_rooms_results = self._get_sliding_sync_joined_rooms()
|
||||
self.assertIncludes(
|
||||
set(sliding_sync_joined_rooms_results.keys()),
|
||||
{room_id1},
|
||||
exact=True,
|
||||
)
|
||||
self.assertEqual(
|
||||
sliding_sync_joined_rooms_results[room_id1],
|
||||
_SlidingSyncJoinedRoomResult(
|
||||
room_id=room_id1,
|
||||
# TODO
|
||||
event_stream_ordering=None,
|
||||
bump_stamp=None,
|
||||
room_type=None,
|
||||
room_name="my super duper room",
|
||||
is_encrypted=False,
|
||||
),
|
||||
)
|
||||
|
||||
sliding_sync_non_join_memberships_results = (
|
||||
self._get_sliding_sync_non_join_memberships()
|
||||
)
|
||||
self.assertIncludes(
|
||||
set(sliding_sync_non_join_memberships_results.keys()),
|
||||
set(),
|
||||
exact=True,
|
||||
)
|
||||
|
||||
# Update the room name
|
||||
self.helper.send_state(
|
||||
room_id1,
|
||||
EventTypes.Name,
|
||||
{"name": "my super duper room was renamed"},
|
||||
tok=user2_tok,
|
||||
)
|
||||
# Encrypt the room
|
||||
self.helper.send_state(
|
||||
room_id1,
|
||||
EventTypes.RoomEncryption,
|
||||
{EventContentFields.ENCRYPTION_ALGORITHM: "m.megolm.v1.aes-sha2"},
|
||||
tok=user2_tok,
|
||||
)
|
||||
|
||||
sliding_sync_joined_rooms_results = self._get_sliding_sync_joined_rooms()
|
||||
self.assertIncludes(
|
||||
set(sliding_sync_joined_rooms_results.keys()),
|
||||
{room_id1},
|
||||
exact=True,
|
||||
)
|
||||
# Make sure we see the new room name
|
||||
self.assertEqual(
|
||||
sliding_sync_joined_rooms_results[room_id1],
|
||||
_SlidingSyncJoinedRoomResult(
|
||||
room_id=room_id1,
|
||||
# TODO
|
||||
event_stream_ordering=None,
|
||||
bump_stamp=None,
|
||||
room_type=None,
|
||||
room_name="my super duper room was renamed",
|
||||
is_encrypted=True,
|
||||
),
|
||||
)
|
||||
|
||||
sliding_sync_non_join_memberships_results = (
|
||||
self._get_sliding_sync_non_join_memberships()
|
||||
)
|
||||
self.assertIncludes(
|
||||
set(sliding_sync_non_join_memberships_results.keys()),
|
||||
set(),
|
||||
exact=True,
|
||||
)
|
||||
|
||||
def test_joined_space_room_with_info(self) -> None:
|
||||
"""
|
||||
Test joined space room with name shows up in `sliding_sync_joined_rooms`.
|
||||
@@ -762,9 +856,99 @@ class SlidingSyncPrePopulatedTablesTestCase(HomeserverTestCase):
|
||||
exact=True,
|
||||
)
|
||||
|
||||
# TODO: Test non-join, no info
|
||||
def test_non_join_space_room_with_info(self) -> None:
|
||||
"""
|
||||
Test users who was invited shows up in `sliding_sync_non_join_memberships`.
|
||||
"""
|
||||
user1_id = self.register_user("user1", "pass")
|
||||
user1_tok = self.login(user1_id, "pass")
|
||||
user2_id = self.register_user("user2", "pass")
|
||||
user2_tok = self.login(user2_id, "pass")
|
||||
|
||||
# TODO: Test info filled out for non-joins
|
||||
space_room_id = self.helper.create_room_as(
|
||||
user2_id,
|
||||
tok=user2_tok,
|
||||
extra_content={
|
||||
"creation_content": {EventContentFields.ROOM_TYPE: RoomTypes.SPACE}
|
||||
},
|
||||
)
|
||||
# Add a room name
|
||||
self.helper.send_state(
|
||||
space_room_id,
|
||||
EventTypes.Name,
|
||||
{"name": "my super duper space"},
|
||||
tok=user2_tok,
|
||||
)
|
||||
# Encrypt the room
|
||||
self.helper.send_state(
|
||||
space_room_id,
|
||||
EventTypes.RoomEncryption,
|
||||
{EventContentFields.ENCRYPTION_ALGORITHM: "m.megolm.v1.aes-sha2"},
|
||||
tok=user2_tok,
|
||||
)
|
||||
|
||||
# User1 is invited to the room
|
||||
user1_invited_response = self.helper.invite(
|
||||
space_room_id, src=user2_id, targ=user1_id, tok=user2_tok
|
||||
)
|
||||
user1_invited_event_pos = self.get_success(
|
||||
self.store.get_position_for_event(user1_invited_response["event_id"])
|
||||
)
|
||||
|
||||
# Update the room name after we are invited just to make sure
|
||||
# we don't update non-join memberships when the room name changes.
|
||||
self.helper.send_state(
|
||||
space_room_id,
|
||||
EventTypes.Name,
|
||||
{"name": "my super duper space was renamed"},
|
||||
tok=user2_tok,
|
||||
)
|
||||
|
||||
# User2 is still joined to the room so we should still have an entry in the
|
||||
# `sliding_sync_joined_rooms` table.
|
||||
sliding_sync_joined_rooms_results = self._get_sliding_sync_joined_rooms()
|
||||
self.assertIncludes(
|
||||
set(sliding_sync_joined_rooms_results.keys()),
|
||||
{space_room_id},
|
||||
exact=True,
|
||||
)
|
||||
self.assertEqual(
|
||||
sliding_sync_joined_rooms_results[space_room_id],
|
||||
_SlidingSyncJoinedRoomResult(
|
||||
room_id=space_room_id,
|
||||
# TODO
|
||||
event_stream_ordering=None,
|
||||
bump_stamp=None,
|
||||
room_type=RoomTypes.SPACE,
|
||||
room_name="my super duper space was renamed",
|
||||
is_encrypted=True,
|
||||
),
|
||||
)
|
||||
|
||||
sliding_sync_non_join_memberships_results = (
|
||||
self._get_sliding_sync_non_join_memberships()
|
||||
)
|
||||
self.assertIncludes(
|
||||
set(sliding_sync_non_join_memberships_results.keys()),
|
||||
{
|
||||
(space_room_id, user1_id),
|
||||
},
|
||||
exact=True,
|
||||
)
|
||||
# Holds the info according to the current state when the user was invited
|
||||
self.assertEqual(
|
||||
sliding_sync_non_join_memberships_results.get((space_room_id, user1_id)),
|
||||
_SlidingSyncNonJoinMembershipResult(
|
||||
room_id=space_room_id,
|
||||
user_id=user1_id,
|
||||
membership_event_id=user1_invited_response["event_id"],
|
||||
membership=Membership.INVITE,
|
||||
event_stream_ordering=user1_invited_event_pos.stream,
|
||||
room_type=RoomTypes.SPACE,
|
||||
room_name="my super duper space",
|
||||
is_encrypted=True,
|
||||
),
|
||||
)
|
||||
|
||||
def test_non_join_invite_ban(self) -> None:
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user