diff options
author | Patrick Cloke <patrickc@matrix.org> | 2022-03-16 12:22:07 -0400 |
---|---|---|
committer | Patrick Cloke <patrickc@matrix.org> | 2022-03-16 12:22:07 -0400 |
commit | 3f7cfbc9e5e82d17cd7782adcbe78e239aae5691 (patch) | |
tree | 35aaeba932f2ab5bd614ab9a946fe7967b6fca3e /tests/rest | |
parent | Handle cancellation in `DatabasePool.runInteraction()` (#12199) (diff) | |
parent | Re-generate changelog. (diff) | |
download | synapse-3f7cfbc9e5e82d17cd7782adcbe78e239aae5691.tar.xz |
Merge branch 'release-v1.55' into develop
Diffstat (limited to 'tests/rest')
-rw-r--r-- | tests/rest/client/test_relations.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/rest/client/test_relations.py b/tests/rest/client/test_relations.py index 3dbd1304a8..f3741b3001 100644 --- a/tests/rest/client/test_relations.py +++ b/tests/rest/client/test_relations.py @@ -981,6 +981,34 @@ class RelationsTestCase(BaseRelationsTestCase): [annotation_event_id_good, thread_event_id], ) + def test_bundled_aggregations_with_filter(self) -> None: + """ + If "unsigned" is an omitted field (due to filtering), adding the bundled + aggregations should not break. + + Note that the spec allows for a server to return additional fields beyond + what is specified. + """ + self._send_relation(RelationTypes.ANNOTATION, "m.reaction", "a") + + # Note that the sync filter does not include "unsigned" as a field. + filter = urllib.parse.quote_plus( + b'{"event_fields": ["content", "event_id"], "room": {"timeline": {"limit": 3}}}' + ) + channel = self.make_request( + "GET", f"/sync?filter={filter}", access_token=self.user_token + ) + self.assertEqual(200, channel.code, channel.json_body) + + # Ensure the timeline is limited, find the parent event. + room_timeline = channel.json_body["rooms"]["join"][self.room]["timeline"] + self.assertTrue(room_timeline["limited"]) + parent_event = self._find_event_in_chunk(room_timeline["events"]) + + # Ensure there's bundled aggregations on it. + self.assertIn("unsigned", parent_event) + self.assertIn("m.relations", parent_event["unsigned"]) + class RelationPaginationTestCase(BaseRelationsTestCase): def test_basic_paginate_relations(self) -> None: |