diff --git a/cypress/e2e/read-receipts/editing-messages.spec.ts b/cypress/e2e/read-receipts/editing-messages.spec.ts index ef56f10cac..af0f758896 100644 --- a/cypress/e2e/read-receipts/editing-messages.spec.ts +++ b/cypress/e2e/read-receipts/editing-messages.spec.ts @@ -263,21 +263,17 @@ describe("Read receipts", () => { assertRead(room2); }); it("A room where all edits are read is still read after restart", () => { - // Given an edit made the room unread - goTo(room2); - receiveMessages(room2, ["Msg1"]); - assertRead(room2); - receiveMessages(room2, [editOf("Msg1", "Msg1 Edit1")]); + // Given a message was edited and read + goTo(room1); + receiveMessages(room2, ["Msg1", editOf("Msg1", "Msg1 Edit1")]); assertUnread(room2, 1); - - // When I mark it as read - markAsRead(room2); - - // Then the room becomes read + goTo(room2); assertRead(room2); - // And remains so after a reload + // When I reload saveAndReload(); + + // Then the room is still read assertRead(room2); }); }); @@ -371,7 +367,7 @@ describe("Read receipts", () => { it("A room where all threaded edits are read is still read after restart", () => { goTo(room2); receiveMessages(room2, ["Msg1", threadedOff("Msg1", "Resp1"), editOf("Resp1", "Edit1")]); - assertUnread(room2, 2); + assertUnread(room2, 1); openThread("Msg1"); assertRead(room2); goTo(room1); // Make sure we are looking at room1 after reload diff --git a/cypress/e2e/read-receipts/high-level.spec.ts b/cypress/e2e/read-receipts/high-level.spec.ts index 39ea887fc2..76da807a4c 100644 --- a/cypress/e2e/read-receipts/high-level.spec.ts +++ b/cypress/e2e/read-receipts/high-level.spec.ts @@ -22,6 +22,7 @@ import type { MatrixClient, MatrixEvent } from "matrix-js-sdk/src/matrix"; import { HomeserverInstance } from "../../plugins/utils/homeserver"; import { assertRead, + assertStillRead, assertUnread, customEvent, goTo, @@ -157,18 +158,25 @@ describe("Read receipts", () => { assertRead(room2); }); it("Sending an important event after unimportant ones makes the room unread", () => { + // Given We have read the important messages goTo(room1); assertRead(room2); receiveMessages(room2, ["Msg1", "Msg2"]); assertUnread(room2, 2); - - markAsRead(room2); + goTo(room2); assertRead(room2); + goTo(room1); + // When we receive important messages receiveMessages(room2, [customEvent("org.custom.event", { body: "foobar" })]); - assertRead(room2); + // Then the room is still read + assertStillRead(room2); + + // And when we receive more important ones receiveMessages(room2, ["Hello"]); + + // The room is unread again assertUnread(room2, 1); }); it.skip("A receipt for the last unimportant event makes the room read, even if all are unimportant", () => {});