Merge branch 'develop' into andybalaam/fix-receipt-flakes

This commit is contained in:
Andy Balaam 2023-09-25 17:40:08 +01:00 committed by GitHub
commit 8565637213
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 15 deletions

View file

@ -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

View file

@ -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", () => {});