You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-12-02 17:02:31 +03:00
* Prepare changelog for v19.2.0-rc.1 * v19.2.0-rc.1 * Sliding sync: add missing filters from latest MSC * Gracefully handle missing room_ids * Prepare changelog for v19.2.0 * v19.2.0 * Resetting package fields for development * Use EventType enum values instead of hardcoded strings (#2557) * Retry to-device messages (#2549) * Retry to-device messages This adds a queueToDevice API alongside sendToDevice which is a much higher-level API that adds the messages to a queue, stored in persistent storage, and retries them periodically. Also converts sending of megolm keys to use the new API. Other uses of sendToDevice are nopt converted in this PR, but could be later. Requires https://github.com/matrix-org/matrix-mock-request/pull/17 * Bump matrix-mock-request * Add more waits to make indexeddb tests pass * Switch some test expectations to queueToDevice * Stop straight away if the client has been stopped Hopefully will fix tests being flakey and logging after tests have finished. * Add return types & fix constant usage * Fix return type Co-authored-by: Germain <germains@element.io> * Fix return type Co-authored-by: Germain <germains@element.io> * Fix return type Co-authored-by: Germain <germains@element.io> * Stop the client in all test cases Co-authored-by: Germain <germains@element.io> * Add support for sending user-defined encrypted to-device messages (#2528) * Add support for sending user-defined encrypted to-device messages This is a port of the same change from the robertlong/group-call branch. * Fix tests * Expose the method in MatrixClient * Fix a code smell * Fix types * Test the MatrixClient method * Fix some types in Crypto test suite * Test the Crypto method * Fix tests * Upgrade matrix-mock-request * Move useRealTimers to afterEach * Remove stream-replacement (#2551) * Reintroduce setNewStream method, fix test, update yarn.lock Co-authored-by: RiotRobot <releases@riot.im> Co-authored-by: Kegan Dougal <kegan@matrix.org> Co-authored-by: Germain <germains@element.io> Co-authored-by: Robin <robin@robin.town> Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
90 lines
3.0 KiB
TypeScript
90 lines
3.0 KiB
TypeScript
/*
|
|
Copyright 2022 The Matrix.org Foundation C.I.C.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
import { SDPStreamMetadataPurpose } from "../../../src/webrtc/callEventTypes";
|
|
import { CallFeed } from "../../../src/webrtc/callFeed";
|
|
import { TestClient } from "../../TestClient";
|
|
import { MockMediaStream, MockMediaStreamTrack } from "../../test-utils/webrtc";
|
|
|
|
describe("CallFeed", () => {
|
|
let client;
|
|
|
|
beforeEach(() => {
|
|
client = new TestClient("@alice:foo", "somedevice", "token", undefined, {});
|
|
});
|
|
|
|
afterEach(() => {
|
|
client.stop();
|
|
});
|
|
|
|
describe("muting", () => {
|
|
let feed: CallFeed;
|
|
|
|
beforeEach(() => {
|
|
feed = new CallFeed({
|
|
client,
|
|
roomId: "room1",
|
|
userId: "user1",
|
|
// @ts-ignore Mock
|
|
stream: new MockMediaStream("stream1"),
|
|
purpose: SDPStreamMetadataPurpose.Usermedia,
|
|
audioMuted: false,
|
|
videoMuted: false,
|
|
});
|
|
});
|
|
|
|
describe("muting by default", () => {
|
|
it("should mute audio by default", () => {
|
|
expect(feed.isAudioMuted()).toBeTruthy();
|
|
});
|
|
|
|
it("should mute video by default", () => {
|
|
expect(feed.isVideoMuted()).toBeTruthy();
|
|
});
|
|
});
|
|
|
|
describe("muting after adding a track", () => {
|
|
it("should un-mute audio", () => {
|
|
// @ts-ignore Mock
|
|
feed.stream.addTrack(new MockMediaStreamTrack("track", "audio", true));
|
|
expect(feed.isAudioMuted()).toBeFalsy();
|
|
});
|
|
|
|
it("should un-mute video", () => {
|
|
// @ts-ignore Mock
|
|
feed.stream.addTrack(new MockMediaStreamTrack("track", "video", true));
|
|
expect(feed.isVideoMuted()).toBeFalsy();
|
|
});
|
|
});
|
|
|
|
describe("muting after calling setAudioVideoMuted()", () => {
|
|
it("should mute audio by default ", () => {
|
|
// @ts-ignore Mock
|
|
feed.stream.addTrack(new MockMediaStreamTrack("track", "audio", true));
|
|
feed.setAudioVideoMuted(true, false);
|
|
expect(feed.isAudioMuted()).toBeTruthy();
|
|
});
|
|
|
|
it("should mute video by default", () => {
|
|
// @ts-ignore Mock
|
|
feed.stream.addTrack(new MockMediaStreamTrack("track", "video", true));
|
|
feed.setAudioVideoMuted(false, true);
|
|
expect(feed.isVideoMuted()).toBeTruthy();
|
|
});
|
|
});
|
|
});
|
|
});
|