Skip to content

Commit 4f9ca2c

Browse files
authored
Remove LegacyMembershipManager (#4862)
* Remove `LegacyMemberhsipManager` * remove tests from rtc session Those tests were only run with the legacy membership manager and are redundant with the memberhsip manager test spec. * fix tests * dont use non existing TestManager anymore * remove fails for legacy * fix another test
1 parent 57a4dc8 commit 4f9ca2c

File tree

7 files changed

+77
-703
lines changed

7 files changed

+77
-703
lines changed

spec/unit/matrixrtc/MatrixRTCSession.spec.ts

Lines changed: 8 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ limitations under the License.
1616

1717
import { encodeBase64, EventType, MatrixClient, type MatrixError, type MatrixEvent, type Room } from "../../../src";
1818
import { KnownMembership } from "../../../src/@types/membership";
19-
import { DEFAULT_EXPIRE_DURATION, type SessionMembershipData } from "../../../src/matrixrtc/CallMembership";
19+
import { type SessionMembershipData } from "../../../src/matrixrtc/CallMembership";
2020
import { MatrixRTCSession, MatrixRTCSessionEvent } from "../../../src/matrixrtc/MatrixRTCSession";
2121
import { type EncryptionKeysEventContent } from "../../../src/matrixrtc/types";
2222
import { secureRandomString } from "../../../src/randomstring";
@@ -201,58 +201,6 @@ describe("MatrixRTCSession", () => {
201201
});
202202
});
203203

204-
describe("updateCallMembershipEvent", () => {
205-
const mockFocus = { type: "livekit", livekit_service_url: "https://test.org" };
206-
const joinSessionConfig = {};
207-
208-
const sessionMembershipData: SessionMembershipData = {
209-
call_id: "",
210-
scope: "m.room",
211-
application: "m.call",
212-
device_id: "AAAAAAA_session",
213-
focus_active: mockFocus,
214-
foci_preferred: [mockFocus],
215-
};
216-
217-
let sendStateEventMock: jest.Mock;
218-
let sendDelayedStateMock: jest.Mock;
219-
220-
let sentStateEvent: Promise<void>;
221-
let sentDelayedState: Promise<void>;
222-
223-
beforeEach(() => {
224-
sentStateEvent = new Promise((resolve) => {
225-
sendStateEventMock = jest.fn(resolve);
226-
});
227-
sentDelayedState = new Promise((resolve) => {
228-
sendDelayedStateMock = jest.fn(() => {
229-
resolve();
230-
return {
231-
delay_id: "id",
232-
};
233-
});
234-
});
235-
client.sendStateEvent = sendStateEventMock;
236-
client._unstable_sendDelayedStateEvent = sendDelayedStateMock;
237-
});
238-
239-
async function testSession(membershipData: SessionMembershipData): Promise<void> {
240-
sess = MatrixRTCSession.roomSessionForRoom(client, makeMockRoom(membershipData));
241-
242-
sess.joinRoomSession([mockFocus], mockFocus, joinSessionConfig);
243-
await Promise.race([sentStateEvent, new Promise((resolve) => setTimeout(resolve, 500))]);
244-
245-
expect(sendStateEventMock).toHaveBeenCalledTimes(1);
246-
247-
await Promise.race([sentDelayedState, new Promise((resolve) => setTimeout(resolve, 500))]);
248-
expect(sendDelayedStateMock).toHaveBeenCalledTimes(1);
249-
}
250-
251-
it("sends events", async () => {
252-
await testSession(sessionMembershipData);
253-
});
254-
});
255-
256204
describe("getOldestMembership", () => {
257205
it("returns the oldest membership event", () => {
258206
jest.useFakeTimers();
@@ -320,28 +268,10 @@ describe("MatrixRTCSession", () => {
320268

321269
describe("joining", () => {
322270
let mockRoom: Room;
323-
let sendStateEventMock: jest.Mock;
324-
let sendDelayedStateMock: jest.Mock;
325271
let sendEventMock: jest.Mock;
326272

327-
let sentStateEvent: Promise<void>;
328-
let sentDelayedState: Promise<void>;
329-
330273
beforeEach(() => {
331-
sentStateEvent = new Promise((resolve) => {
332-
sendStateEventMock = jest.fn(resolve);
333-
});
334-
sentDelayedState = new Promise((resolve) => {
335-
sendDelayedStateMock = jest.fn(() => {
336-
resolve();
337-
return {
338-
delay_id: "id",
339-
};
340-
});
341-
});
342274
sendEventMock = jest.fn();
343-
client.sendStateEvent = sendStateEventMock;
344-
client._unstable_sendDelayedStateEvent = sendDelayedStateMock;
345275
client.sendEvent = sendEventMock;
346276

347277
client._unstable_updateDelayedEvent = jest.fn();
@@ -367,67 +297,6 @@ describe("MatrixRTCSession", () => {
367297
sess!.joinRoomSession([mockFocus], mockFocus);
368298
expect(sess!.isJoined()).toEqual(true);
369299
});
370-
371-
it("sends a membership event when joining a call", async () => {
372-
const realSetTimeout = setTimeout;
373-
jest.useFakeTimers();
374-
sess!.joinRoomSession([mockFocus], mockFocus);
375-
await Promise.race([sentStateEvent, new Promise((resolve) => realSetTimeout(resolve, 500))]);
376-
expect(client.sendStateEvent).toHaveBeenCalledWith(
377-
mockRoom!.roomId,
378-
EventType.GroupCallMemberPrefix,
379-
{
380-
application: "m.call",
381-
scope: "m.room",
382-
call_id: "",
383-
device_id: "AAAAAAA",
384-
expires: DEFAULT_EXPIRE_DURATION,
385-
foci_preferred: [mockFocus],
386-
focus_active: {
387-
focus_selection: "oldest_membership",
388-
type: "livekit",
389-
},
390-
},
391-
"_@alice:example.org_AAAAAAA",
392-
);
393-
await Promise.race([sentDelayedState, new Promise((resolve) => realSetTimeout(resolve, 500))]);
394-
// Because we actually want to send the state
395-
expect(client.sendStateEvent).toHaveBeenCalledTimes(1);
396-
// For checking if the delayed event is still there or got removed while sending the state.
397-
expect(client._unstable_updateDelayedEvent).toHaveBeenCalledTimes(1);
398-
// For scheduling the delayed event
399-
expect(client._unstable_sendDelayedStateEvent).toHaveBeenCalledTimes(1);
400-
// This returns no error so we do not check if we reschedule the event again. this is done in another test.
401-
402-
jest.useRealTimers();
403-
});
404-
405-
it("uses membershipEventExpiryMs from join config", async () => {
406-
const realSetTimeout = setTimeout;
407-
jest.useFakeTimers();
408-
sess!.joinRoomSession([mockFocus], mockFocus, { membershipEventExpiryMs: 60000 });
409-
await Promise.race([sentStateEvent, new Promise((resolve) => realSetTimeout(resolve, 500))]);
410-
expect(client.sendStateEvent).toHaveBeenCalledWith(
411-
mockRoom!.roomId,
412-
EventType.GroupCallMemberPrefix,
413-
{
414-
application: "m.call",
415-
scope: "m.room",
416-
call_id: "",
417-
device_id: "AAAAAAA",
418-
expires: 60000,
419-
foci_preferred: [mockFocus],
420-
focus_active: {
421-
focus_selection: "oldest_membership",
422-
type: "livekit",
423-
},
424-
},
425-
"_@alice:example.org_AAAAAAA",
426-
);
427-
await Promise.race([sentDelayedState, new Promise((resolve) => realSetTimeout(resolve, 500))]);
428-
expect(client._unstable_sendDelayedStateEvent).toHaveBeenCalledTimes(1);
429-
jest.useRealTimers();
430-
});
431300
});
432301

433302
describe("onMembershipsChanged", () => {
@@ -489,9 +358,9 @@ describe("MatrixRTCSession", () => {
489358
let sendToDeviceMock: jest.Mock;
490359

491360
beforeEach(() => {
492-
sendStateEventMock = jest.fn();
493-
sendDelayedStateMock = jest.fn();
494-
sendEventMock = jest.fn();
361+
sendStateEventMock = jest.fn().mockResolvedValue({ event_id: "id" });
362+
sendDelayedStateMock = jest.fn().mockResolvedValue({ event_id: "id" });
363+
sendEventMock = jest.fn().mockResolvedValue({ event_id: "id" });
495364
sendToDeviceMock = jest.fn();
496365
client.sendStateEvent = sendStateEventMock;
497366
client._unstable_sendDelayedStateEvent = sendDelayedStateMock;
@@ -569,24 +438,22 @@ describe("MatrixRTCSession", () => {
569438
let firstEventSent = false;
570439

571440
try {
572-
const eventSentPromise = new Promise<void>((resolve) => {
441+
const eventSentPromise = new Promise<{ event_id: string }>((resolve) => {
573442
sendEventMock.mockImplementation(() => {
574443
if (!firstEventSent) {
575-
jest.advanceTimersByTime(10000);
576-
577444
firstEventSent = true;
578445
const e = new Error() as MatrixError;
579446
e.data = {};
580447
throw e;
581448
} else {
582-
resolve();
449+
resolve({ event_id: "id" });
583450
}
584451
});
585452
});
586453

587454
sess!.joinRoomSession([mockFocus], mockFocus, { manageMediaKeys: true });
588-
await jest.runAllTimersAsync();
589-
455+
// wait for the encryption event to get sent
456+
await jest.advanceTimersByTimeAsync(5000);
590457
await eventSentPromise;
591458

592459
expect(sendEventMock).toHaveBeenCalledTimes(2);
@@ -993,7 +860,6 @@ describe("MatrixRTCSession", () => {
993860

994861
sess!.joinRoomSession([mockFocus], mockFocus, {
995862
manageMediaKeys: true,
996-
useNewMembershipManager: true,
997863
useExperimentalToDeviceTransport: true,
998864
});
999865

0 commit comments

Comments
 (0)