You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-07-30 04:23:07 +03:00
Implement changes to MSC2285 (private read receipts) (#2221)
* Add `ReceiptType` Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Implement changes to MSC2285 Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Improve tests Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Apply suggestions from review Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Update `getEventReadUpTo()` to handle private read receipts Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Write tests for `getEventReadUpTo()` Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Give `getReadReceiptForUserId()` a JSDOC Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Types! Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com> * Try to use receipt `ts`s Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
This commit is contained in:
@ -29,6 +29,7 @@ import {
|
||||
import { MEGOLM_ALGORITHM } from "../../src/crypto/olmlib";
|
||||
import { EventStatus, MatrixEvent } from "../../src/models/event";
|
||||
import { Preset } from "../../src/@types/partials";
|
||||
import { ReceiptType } from "../../src/@types/read_receipts";
|
||||
import * as testUtils from "../test-utils/test-utils";
|
||||
import { makeBeaconInfoContent } from "../../src/content-helpers";
|
||||
import { M_BEACON_INFO } from "../../src/@types/beacon";
|
||||
@ -992,6 +993,46 @@ describe("MatrixClient", function() {
|
||||
});
|
||||
});
|
||||
|
||||
describe("read-markers and read-receipts", () => {
|
||||
it("setRoomReadMarkers", () => {
|
||||
client.setRoomReadMarkersHttpRequest = jest.fn();
|
||||
const room = {
|
||||
hasPendingEvent: jest.fn().mockReturnValue(false),
|
||||
addLocalEchoReceipt: jest.fn(),
|
||||
};
|
||||
const rrEvent = new MatrixEvent({ event_id: "read_event_id" });
|
||||
const rpEvent = new MatrixEvent({ event_id: "read_private_event_id" });
|
||||
client.getRoom = () => room;
|
||||
|
||||
client.setRoomReadMarkers(
|
||||
"room_id",
|
||||
"read_marker_event_id",
|
||||
rrEvent,
|
||||
rpEvent,
|
||||
);
|
||||
|
||||
expect(client.setRoomReadMarkersHttpRequest).toHaveBeenCalledWith(
|
||||
"room_id",
|
||||
"read_marker_event_id",
|
||||
"read_event_id",
|
||||
"read_private_event_id",
|
||||
);
|
||||
expect(room.addLocalEchoReceipt).toHaveBeenCalledTimes(2);
|
||||
expect(room.addLocalEchoReceipt).toHaveBeenNthCalledWith(
|
||||
1,
|
||||
client.credentials.userId,
|
||||
rrEvent,
|
||||
ReceiptType.Read,
|
||||
);
|
||||
expect(room.addLocalEchoReceipt).toHaveBeenNthCalledWith(
|
||||
2,
|
||||
client.credentials.userId,
|
||||
rpEvent,
|
||||
ReceiptType.ReadPrivate,
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe("beacons", () => {
|
||||
const roomId = '!room:server.org';
|
||||
const content = makeBeaconInfoContent(100, true);
|
||||
|
Reference in New Issue
Block a user