summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2023-12-05 12:06:21 +0000
committerGitHub <noreply@github.com>2023-12-05 12:06:21 +0000
commit0a00c99823818228479f9fdb8c77e61a49a65e18 (patch)
tree66557d4b4d5939b2f0757a1ced380d4bc2f19381 /tests
parentAdd how to validate configuration file with synapse.config script (#16714) (diff)
downloadsynapse-0a00c99823818228479f9fdb8c77e61a49a65e18.tar.xz
Fix upgrading a room without `events` field in power levels (#16725)
Diffstat (limited to 'tests')
-rw-r--r--tests/rest/client/test_upgrade_room.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/rest/client/test_upgrade_room.py b/tests/rest/client/test_upgrade_room.py
index 0b4c691318..28f772261b 100644
--- a/tests/rest/client/test_upgrade_room.py
+++ b/tests/rest/client/test_upgrade_room.py
@@ -246,6 +246,34 @@ class UpgradeRoomTest(unittest.HomeserverTestCase):
         # We should now have an integer power level.
         self.assertEqual(new_power_levels["users"][self.creator], 100, new_power_levels)
 
+    def test_events_field_missing(self) -> None:
+        """Regression test for https://github.com/matrix-org/synapse/issues/16715."""
+        # Create a new room.
+        room_id = self.helper.create_room_as(
+            self.creator, tok=self.creator_token, room_version="10"
+        )
+        self.helper.join(room_id, self.other, tok=self.other_token)
+
+        # Retrieve the room's current power levels.
+        power_levels = self.helper.get_state(
+            room_id,
+            "m.room.power_levels",
+            tok=self.creator_token,
+        )
+
+        # Remove the events field and re-set the power levels.
+        del power_levels["events"]
+        self.helper.send_state(
+            room_id,
+            "m.room.power_levels",
+            body=power_levels,
+            tok=self.creator_token,
+        )
+
+        # Upgrade the room. Check the homeserver reports success.
+        channel = self._upgrade_room(room_id=room_id)
+        self.assertEqual(200, channel.code, channel.result)
+
     def test_space(self) -> None:
         """Test upgrading a space."""