fix RemoteJoinHelper to handle v12 rooms (#20021)

While preparing for the default room version change to "12", the new
tests for
[FederationJoinUpgradedRoomTestCase](https://github.com/element-hq/synapse/blob/36664cac4fdec38993c68078cd9a82452b56dca7/tests/federation/test_federation_join_upgraded_room.py#L44)
were unable to handle creation events inside of the manufactured
`auth_events` sections. All of these tests fail.

Related to https://github.com/element-hq/synapse/pull/20015 as another
recent fix to `RemoteJoinHelper`


### Testing strategy

To test, I recommend changing the `DEFAULT_ROOM_VERSION` in [the
`server.py` config
file](https://github.com/element-hq/synapse/blob/36664cac4fdec38993c68078cd9a82452b56dca7/synapse/config/server.py#L179)
to `"12"`, then running `poetry run trial
tests.federation.test_federation_join_upgraded_room.FederationJoinUpgradedRoomTestCase`
for these selective tests. Alternatively, creating the
`default_config()` for the `TestCase` in question to set the default
room version, but that is more work.
This commit is contained in:
Jason Little
2026-08-03 13:47:26 -05:00
committed by GitHub
parent f61950d54d
commit 415a869f1f
2 changed files with 13 additions and 4 deletions
+1
View File
@@ -0,0 +1 @@
Fix `RemoteJoinHelper` test helper to handle room version "12" rooms. Contributed by @famedly @jason-famedly.
+12 -4
View File
@@ -146,7 +146,9 @@ class RemoteJoinHelper:
"type": EventTypes.Member,
"state_key": remote_creator_user_id,
"content": {"membership": Membership.JOIN},
"auth_events": [room_create_event.event_id],
"auth_events": [room_create_event.event_id]
if not room_version.msc4291_room_ids_as_hashes
else [],
"prev_events": [room_create_event.event_id],
},
room_version=room_version,
@@ -173,7 +175,9 @@ class RemoteJoinHelper:
"auth_events": [
room_create_event.event_id,
creator_membership_event.event_id,
],
]
if not room_version.msc4291_room_ids_as_hashes
else [creator_membership_event.event_id],
"prev_events": [prev_event.event_id],
},
room_version=room_version,
@@ -215,7 +219,9 @@ class RemoteJoinHelper:
"auth_events": [
room_create_event.event_id,
creator_membership_event.event_id,
],
]
if not room_version.msc4291_room_ids_as_hashes
else [creator_membership_event.event_id],
"prev_events": [
extra_events[-1].event_id
if extra_events
@@ -254,7 +260,9 @@ class RemoteJoinHelper:
"auth_events": [
room_create_event.event_id,
invite_membership_event.event_id,
],
]
if not room_version.msc4291_room_ids_as_hashes
else [invite_membership_event.event_id],
"prev_events": [invite_membership_event.event_id],
},
room_version=room_version,