diff --git a/playwright/e2e/read-receipts/index.ts b/playwright/e2e/read-receipts/index.ts index efa93dc9d42..fcdecc06d97 100644 --- a/playwright/e2e/read-receipts/index.ts +++ b/playwright/e2e/read-receipts/index.ts @@ -155,10 +155,19 @@ export class MessageBuilder { public async getContent(room: JSHandle): Promise> { const ev = await this.messageFinder.getMessage(room, targetMessage, true); return ev.evaluate((ev, newMessage) => { + const threadRel = + ev.getRelation()?.rel_type === "m.thread" + ? { + rel_type: "m.thread", + event_id: ev.getRelation().event_id, + } + : {}; + return { "msgtype": "m.text", "body": newMessage, "m.relates_to": { + ...threadRel, "m.in_reply_to": { event_id: ev.getId(), }, diff --git a/playwright/e2e/read-receipts/redactions.spec.ts b/playwright/e2e/read-receipts/redactions.spec.ts index a68e6aa36da..5ec202ed0d4 100644 --- a/playwright/e2e/read-receipts/redactions.spec.ts +++ b/playwright/e2e/read-receipts/redactions.spec.ts @@ -642,8 +642,7 @@ test.describe("Read receipts", () => { await util.assertRead(room2); await util.assertReadThread("Root"); }); - // XXX: fails because the read count drops to 1 but not to zero (this is a genuine stuck unread case) - test.skip("Reading a reply to a redacted message marks the thread as read", async ({ + test("Reading a reply to a redacted message marks the thread as read", async ({ roomAlpha: room1, roomBeta: room2, util, @@ -760,8 +759,7 @@ test.describe("Read receipts", () => { // Then the room is still read await util.assertRead(room2); }); - // XXX: fails for the same reason as "Reading a reply to a redacted message marks the thread as read" - test.skip("A thread with an unread reply to a redacted message is still unread after restart", async ({ + test("A thread with an unread reply to a redacted message is still unread after restart", async ({ roomAlpha: room1, roomBeta: room2, util, @@ -791,8 +789,7 @@ test.describe("Read receipts", () => { await util.assertRead(room2); await util.assertReadThread("Root"); }); - // XXX: fails for the same reason as "Reading a reply to a redacted message marks the thread as read - test.skip("A thread with a read reply to a redacted message is still read after restart", async ({ + test("A thread with a read reply to a redacted message is still read after restart", async ({ roomAlpha: room1, roomBeta: room2, util,