From 9e9c545bfbb96e241f2b6332c65523d2536eeb92 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 15 Aug 2025 10:31:44 +0100 Subject: [PATCH 1/3] Test that invites can be rescinded over federation --- tests/federation_rooms_invite_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/federation_rooms_invite_test.go b/tests/federation_rooms_invite_test.go index b99509e1..0432ac15 100644 --- a/tests/federation_rooms_invite_test.go +++ b/tests/federation_rooms_invite_test.go @@ -149,6 +149,27 @@ func TestFederationRoomsInvite(t *testing.T) { alice.MustSyncUntil(t, client.SyncReq{Filter: includeLeaveSyncFilter}, client.SyncLeftFrom(bob2.UserID, roomID)) }) + t.Run("Invitee user can rescind invite over federation", func(t *testing.T) { + t.Parallel() + roomID := alice.MustCreateRoom(t, map[string]interface{}{ + "preset": "private_chat", + "invite": []string{bob.UserID}, + }) + bob.MustSyncUntil(t, client.SyncReq{}, client.SyncInvitedTo(bob.UserID, roomID)) + resp := alice.Do(t, "POST", []string{"_matrix", "client", "v3", "rooms", roomID, "kick"}, + client.WithJSONBody(t, map[string]interface{}{ + "user_id": bob.UserID, + "reason": "testing", + }), + ) + + must.MatchResponse(t, resp, match.HTTPResponse{ + StatusCode: 200, + }) + + bob.MustSyncUntil(t, client.SyncReq{Filter: includeLeaveSyncFilter}, client.SyncLeftFrom(bob.UserID, roomID)) + }) + t.Run("Invited user has 'is_direct' flag in prev_content after joining", func(t *testing.T) { roomID := alice.MustCreateRoom(t, map[string]interface{}{ "preset": "private_chat", From 70625fcd5a48d778d33a1d1d0ac812a7b0d213af Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 22 Aug 2025 13:30:57 +0100 Subject: [PATCH 2/3] Update tests/federation_rooms_invite_test.go Co-authored-by: Eric Eastwood --- tests/federation_rooms_invite_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/federation_rooms_invite_test.go b/tests/federation_rooms_invite_test.go index 0432ac15..18b993c0 100644 --- a/tests/federation_rooms_invite_test.go +++ b/tests/federation_rooms_invite_test.go @@ -149,7 +149,7 @@ func TestFederationRoomsInvite(t *testing.T) { alice.MustSyncUntil(t, client.SyncReq{Filter: includeLeaveSyncFilter}, client.SyncLeftFrom(bob2.UserID, roomID)) }) - t.Run("Invitee user can rescind invite over federation", func(t *testing.T) { + t.Run("Inviter user can rescind invite over federation", func(t *testing.T) { t.Parallel() roomID := alice.MustCreateRoom(t, map[string]interface{}{ "preset": "private_chat", From 54bf25c6d0cdd9e1ecb49ae4af845a231c4bce86 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 22 Aug 2025 13:31:22 +0100 Subject: [PATCH 3/3] Update tests/federation_rooms_invite_test.go Co-authored-by: Eric Eastwood --- tests/federation_rooms_invite_test.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/tests/federation_rooms_invite_test.go b/tests/federation_rooms_invite_test.go index 18b993c0..6bf2d217 100644 --- a/tests/federation_rooms_invite_test.go +++ b/tests/federation_rooms_invite_test.go @@ -156,17 +156,13 @@ func TestFederationRoomsInvite(t *testing.T) { "invite": []string{bob.UserID}, }) bob.MustSyncUntil(t, client.SyncReq{}, client.SyncInvitedTo(bob.UserID, roomID)) - resp := alice.Do(t, "POST", []string{"_matrix", "client", "v3", "rooms", roomID, "kick"}, + alice.MustDo(t, "POST", []string{"_matrix", "client", "v3", "rooms", roomID, "kick"}, client.WithJSONBody(t, map[string]interface{}{ "user_id": bob.UserID, "reason": "testing", }), ) - must.MatchResponse(t, resp, match.HTTPResponse{ - StatusCode: 200, - }) - bob.MustSyncUntil(t, client.SyncReq{Filter: includeLeaveSyncFilter}, client.SyncLeftFrom(bob.UserID, roomID)) })