From 09ac503e220c55f74127182030bc947abec251ee Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 20 Apr 2021 17:57:03 +0200 Subject: [PATCH] add test for removing invite --- src/matrix/room/Invite.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/matrix/room/Invite.js b/src/matrix/room/Invite.js index a9846ccc..f71344cd 100644 --- a/src/matrix/room/Invite.js +++ b/src/matrix/room/Invite.js @@ -194,6 +194,9 @@ export function tests() { invites: { set(invite) { invitesMap.set(invite.roomId, invite); + }, + remove(roomId) { + invitesMap.delete(roomId); } } } @@ -265,5 +268,26 @@ export function tests() { assert.equal(invite.inviter.displayName, "Alice"); assert.equal(invite.inviter.avatarUrl, aliceAvatarUrl); }, + "syncing with membership from invite removes the invite": async assert => { + let removedEmitted = false; + const invite = new Invite({ + roomId, + clock: new MockClock(1003), + user: {id: "@bob:hs.tld"}, + emitCollectionRemove: emittingInvite => { + assert.equal(emittingInvite, invite); + removedEmitted = true; + } + }); + const txn = createStorage(); + const changes = await invite.writeSync("invite", dmInviteFixture, txn, new NullLogItem()); + assert.equal(txn.invitesMap.get(roomId).roomId, roomId); + invite.afterSync(changes); + const joinChanges = await invite.writeSync("join", null, txn, new NullLogItem()); + assert(!removedEmitted); + invite.afterSync(joinChanges); + assert.equal(txn.invitesMap.get(roomId), undefined); + assert(removedEmitted); + } } }