From 6ba4b355262771d280ca6516d55357619e90cd08 Mon Sep 17 00:00:00 2001 From: Andy Balaam Date: Tue, 7 Nov 2023 13:45:08 +0000 Subject: [PATCH] Revert "Revert "Don't remove thread info from a thread root when it is redacted"" This reverts commit 4dbff2a837cbc5ba37424c65ccdc833a1843deb2. --- spec/unit/models/event.spec.ts | 23 +++++++++++++++++++++++ src/models/event.ts | 5 +++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/spec/unit/models/event.spec.ts b/spec/unit/models/event.spec.ts index 9e7720a14..5ff9d745d 100644 --- a/spec/unit/models/event.spec.ts +++ b/spec/unit/models/event.spec.ts @@ -111,6 +111,29 @@ describe("MatrixEvent", () => { expect(mainTimelineLiveEventIds(room)).toEqual([ev.getId()]); }); + it("should keep thread roots in both timelines when redacted", async () => { + // Given a thread exists + const mockClient = createMockClient(); + const room = new Room("!roomid:e.xyz", mockClient, "myname"); + const threadRoot = createEvent("$threadroot:server"); + const ev = createThreadedEvent("$event1:server", threadRoot.getId()!); + + await room.addLiveEvents([threadRoot, ev]); + await room.createThreadsTimelineSets(); + expect(threadRoot.threadRootId).toEqual(threadRoot.getId()); + expect(mainTimelineLiveEventIds(room)).toEqual([threadRoot.getId()]); + expect(threadLiveEventIds(room, 0)).toEqual([threadRoot.getId(), ev.getId()]); + + // When I redact the thread root + const redaction = createRedaction(ev.getId()!); + threadRoot.makeRedacted(redaction, room); + + // Then it remains in the main timeline and the thread + expect(threadRoot.threadRootId).toEqual(threadRoot.getId()); + expect(mainTimelineLiveEventIds(room)).toEqual([threadRoot.getId()]); + expect(threadLiveEventIds(room, 0)).toEqual([threadRoot.getId(), ev.getId()]); + }); + it("should move into the main timeline when redacted", async () => { // Given an event in a thread const mockClient = createMockClient(); diff --git a/src/models/event.ts b/src/models/event.ts index c76da4a45..d37c98b4a 100644 --- a/src/models/event.ts +++ b/src/models/event.ts @@ -1208,8 +1208,9 @@ export class MatrixEvent extends TypedEventEmitter