From fdeba704bc0070726aa8e17e88b472a532ea2631 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Tue, 26 Oct 2021 16:05:39 -0500 Subject: [PATCH] More test coverage to ensure we process MSC2716 events in existing room versions (#209) Synapse changes in https://github.com/matrix-org/synapse/pull/10962 Part of MSC2716: https://github.com/matrix-org/matrix-doc/pull/2716 --- tests/msc2716_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/msc2716_test.go b/tests/msc2716_test.go index 4fde3f79..c2cb2e0a 100644 --- a/tests/msc2716_test.go +++ b/tests/msc2716_test.go @@ -813,6 +813,9 @@ func TestImportHistoricalMessages(t *testing.T) { eventIdBefore := eventIDsBefore[0] timeAfterEventBefore := time.Now() + // Create eventIDsAfter to avoid the "No forward extremities left!" 500 error from Synapse + createMessagesInRoom(t, alice, roomID, 2) + // Import a historical event batchSendRes := batchSendHistoricalMessages( t, @@ -827,6 +830,7 @@ func TestImportHistoricalMessages(t *testing.T) { ) batchSendResBody := client.ParseJSON(t, batchSendRes) historicalEventIDs := client.GetJSONFieldStringArray(t, batchSendResBody, "event_ids") + nextBatchID := client.GetJSONFieldStr(t, batchSendResBody, "next_batch_id") messagesRes := alice.MustDoFunc(t, "GET", []string{"_matrix", "client", "r0", "rooms", roomID, "messages"}, client.WithContentType("application/json"), client.WithQueries(url.Values{ "dir": []string{"b"}, @@ -840,6 +844,20 @@ func TestImportHistoricalMessages(t *testing.T) { }, nil), }, }) + + // Now try to do a subsequent batch send. This will make sure + // that insertion events are stored/tracked and can be matched up in the next batch + batchSendHistoricalMessages( + t, + as, + roomID, + eventIdBefore, + nextBatchID, + createJoinStateEventsForBatchSendRequest([]string{virtualUserID}, timeAfterEventBefore), + createMessageEventsForBatchSendRequest([]string{virtualUserID}, timeAfterEventBefore, 1), + // Status + 200, + ) }) t.Run("Not allowed to redact MSC2716 insertion, batch, marker events", func(t *testing.T) {