Skip to content

Commit c6948b7

Browse files
committed
update tests to use new RoomAndToDeiviceTransport constructor
1 parent 4a53909 commit c6948b7

File tree

1 file changed

+18
-28
lines changed

1 file changed

+18
-28
lines changed

spec/unit/matrixrtc/RoomAndToDeviceTransport.spec.ts

+18-28
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { type Mocked } from "jest-mock";
1818

1919
import { makeKey, makeMockEvent, makeMockRoom, membershipTemplate, mockCallMembership } from "./mocks";
2020
import { EventType, type IRoomTimelineData, type Room, RoomEvent, type MatrixClient } from "../../../src";
21-
import type { ToDeviceKeyTransport } from "../../../src/matrixrtc/ToDeviceKeyTransport.ts";
21+
import { ToDeviceKeyTransport } from "../../../src/matrixrtc/ToDeviceKeyTransport.ts";
2222
import {
2323
getMockClientWithEventEmitter,
2424
mockClientMethodsEvents,
@@ -28,7 +28,7 @@ import { type Statistics } from "../../../src/matrixrtc";
2828
import { KeyTransportEvents } from "../../../src/matrixrtc/IKeyTransport.ts";
2929
import { type Logger } from "../../../src/logger.ts";
3030
import { RoomAndToDeviceEvents, RoomAndToDeviceTransport } from "../../../src/matrixrtc/RoomAndToDeviceKeyTransport.ts";
31-
import type { RoomKeyTransport } from "../../../src/matrixrtc/RoomKeyTransport.ts";
31+
import { RoomKeyTransport } from "../../../src/matrixrtc/RoomKeyTransport.ts";
3232

3333
describe("RoomAndToDeviceTransport", () => {
3434
const roomId = "!room:id";
@@ -39,12 +39,10 @@ describe("RoomAndToDeviceTransport", () => {
3939
let transport: RoomAndToDeviceTransport;
4040
let mockRoom: Room;
4141
let sendEventMock: jest.Mock;
42-
function getToDeviceTransport(transport: RoomAndToDeviceTransport): ToDeviceKeyTransport {
43-
return (transport as unknown as any).toDeviceTransport as ToDeviceKeyTransport;
44-
}
45-
function getRoomTransport(transport: RoomAndToDeviceTransport) {
46-
return (transport as unknown as any).roomKeyTransport as RoomKeyTransport;
47-
}
42+
let roomKeyTransport: RoomKeyTransport;
43+
let toDeviceKeyTransport: ToDeviceKeyTransport;
44+
let toDeviceSendKeySpy: jest.SpyInstance;
45+
let roomSendKeySpy: jest.SpyInstance;
4846
beforeEach(() => {
4947
sendEventMock = jest.fn();
5048
mockClient = getMockClientWithEventEmitter({
@@ -70,14 +68,17 @@ describe("RoomAndToDeviceTransport", () => {
7068
roomEventEncryptionKeysReceivedTotalAge: 0,
7169
},
7270
};
73-
transport = new RoomAndToDeviceTransport(
71+
roomKeyTransport = new RoomKeyTransport(mockRoom, mockClient, statistics);
72+
toDeviceKeyTransport = new ToDeviceKeyTransport(
7473
"@alice:example.org",
7574
"MYDEVICE",
76-
mockRoom,
75+
mockRoom.roomId,
7776
mockClient,
7877
statistics,
79-
mockLogger,
8078
);
79+
transport = new RoomAndToDeviceTransport(toDeviceKeyTransport, roomKeyTransport, mockLogger);
80+
toDeviceSendKeySpy = jest.spyOn(toDeviceKeyTransport, "sendKey");
81+
roomSendKeySpy = jest.spyOn(roomKeyTransport, "sendKey");
8182
});
8283

8384
it("should enable to device transport when starting", () => {
@@ -87,19 +88,15 @@ describe("RoomAndToDeviceTransport", () => {
8788
});
8889
it("only sends to device keys when sending a key", async () => {
8990
transport.start();
90-
const toDeviceSpy = jest.spyOn(getToDeviceTransport(transport), "sendKey");
91-
const roomSpy = jest.spyOn(getRoomTransport(transport), "sendKey");
9291
await transport.sendKey("1235", 0, [mockCallMembership(membershipTemplate, roomId, "@alice:example.org")]);
93-
expect(toDeviceSpy).toHaveBeenCalledTimes(1);
94-
expect(roomSpy).toHaveBeenCalledTimes(0);
92+
expect(toDeviceSendKeySpy).toHaveBeenCalledTimes(1);
93+
expect(roomSendKeySpy).toHaveBeenCalledTimes(0);
9594
expect(transport.enabled.room).toBeFalsy();
9695
expect(transport.enabled.toDevice).toBeTruthy();
9796
});
9897

9998
it("enables room transport and disables to device transport when receiving a room key", async () => {
10099
transport.start();
101-
const roomSpy = jest.spyOn(getRoomTransport(transport), "sendKey");
102-
const toDeviceSpy = jest.spyOn(getToDeviceTransport(transport), "sendKey");
103100
const onNewKeyFromTransport = jest.fn();
104101
const onTransportEnabled = jest.fn();
105102
transport.on(KeyTransportEvents.ReceivedKeys, onNewKeyFromTransport);
@@ -123,8 +120,8 @@ describe("RoomAndToDeviceTransport", () => {
123120

124121
await transport.sendKey("1235", 0, [mockCallMembership(membershipTemplate, roomId, "@alice:example.org")]);
125122
expect(sendEventMock).toHaveBeenCalledTimes(1);
126-
expect(roomSpy).toHaveBeenCalledTimes(1);
127-
expect(toDeviceSpy).toHaveBeenCalledTimes(0);
123+
expect(roomSendKeySpy).toHaveBeenCalledTimes(1);
124+
expect(toDeviceSendKeySpy).toHaveBeenCalledTimes(0);
128125
expect(onTransportEnabled).toHaveBeenCalledWith({ toDevice: false, room: true });
129126
});
130127
it("does log that it did nothing when disabled", () => {
@@ -136,15 +133,8 @@ describe("RoomAndToDeviceTransport", () => {
136133

137134
transport.setEnabled({ toDevice: false, room: false });
138135
const dateNow = Date.now();
139-
getRoomTransport(transport).emit(KeyTransportEvents.ReceivedKeys, "user", "device", "roomKey", 0, dateNow);
140-
getToDeviceTransport(transport).emit(
141-
KeyTransportEvents.ReceivedKeys,
142-
"user",
143-
"device",
144-
"toDeviceKey",
145-
0,
146-
Date.now(),
147-
);
136+
roomKeyTransport.emit(KeyTransportEvents.ReceivedKeys, "user", "device", "roomKey", 0, dateNow);
137+
toDeviceKeyTransport.emit(KeyTransportEvents.ReceivedKeys, "user", "device", "toDeviceKey", 0, Date.now());
148138

149139
expect(mockLogger.debug).toHaveBeenCalledWith("To Device transport is disabled, ignoring received keys");
150140
// for room key transport we will never get a disabled message because its will always just turn on

0 commit comments

Comments
 (0)