mirror of
https://github.com/element-hq/synapse.git
synced 2026-07-26 21:11:29 +00:00
Add a test to ensure display name changes don't generate extra room_joined profile updates rows, due to membership event changes
This commit is contained in:
@@ -582,6 +582,80 @@ class ProfileTestCase(unittest.HomeserverTestCase):
|
||||
],
|
||||
)
|
||||
|
||||
@override_config({"include_profile_updates_in_sync": True})
|
||||
def test_display_name_change_does_not_generate_join_action_rows_for_profile_updates(
|
||||
self,
|
||||
) -> None:
|
||||
"""Test that changing ones display name doesn't generate "joined_room"
|
||||
profile updates to the stream, due to room state membership event changes,
|
||||
if MSC4429 is enabled.
|
||||
"""
|
||||
self.register_user("roger", "password")
|
||||
roger_token = self.login("roger", "password")
|
||||
room_id = self.helper.create_room_as(
|
||||
room_creator=self.frank.to_string(),
|
||||
tok=self.frank_token,
|
||||
)
|
||||
self.helper.join(room_id, "@roger:test", tok=roger_token)
|
||||
per_user_updates = self.get_success(
|
||||
self.store.get_profile_updates_for_user_and_fields(
|
||||
from_id=0,
|
||||
to_id=10,
|
||||
user_id=self.frank.to_string(),
|
||||
field_names={"displayname"},
|
||||
)
|
||||
)
|
||||
# Starting situation
|
||||
self.assertEqual(
|
||||
per_user_updates,
|
||||
[
|
||||
ProfileUpdate(
|
||||
stream_id=2,
|
||||
user_id="@roger:test",
|
||||
action="joined_room",
|
||||
field_name=None,
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
# Change rogers display name
|
||||
self.get_success(
|
||||
self.handler.set_field(
|
||||
target_user=UserID.from_string("@roger:test"),
|
||||
requester=synapse.types.create_requester("@roger:test"),
|
||||
field_name="displayname",
|
||||
new_value="Roger new name",
|
||||
)
|
||||
)
|
||||
|
||||
per_user_updates = self.get_success(
|
||||
self.store.get_profile_updates_for_user_and_fields(
|
||||
from_id=0,
|
||||
to_id=10,
|
||||
user_id=self.frank.to_string(),
|
||||
field_names={"displayname"},
|
||||
)
|
||||
)
|
||||
# Only the displayname change should appear, no extra "room join" due to
|
||||
# membership state event changes.
|
||||
self.assertEqual(
|
||||
per_user_updates,
|
||||
[
|
||||
ProfileUpdate(
|
||||
stream_id=2,
|
||||
user_id="@roger:test",
|
||||
action="joined_room",
|
||||
field_name=None,
|
||||
),
|
||||
ProfileUpdate(
|
||||
stream_id=3,
|
||||
user_id="@roger:test",
|
||||
action="update",
|
||||
field_name="displayname",
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
@parameterized.expand(
|
||||
[
|
||||
["displayname", "Frank"],
|
||||
|
||||
Reference in New Issue
Block a user