mirror of
https://github.com/vector-im/element-call.git
synced 2026-09-19 22:19:30 +00:00
temp add tests
This commit is contained in:
@@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
|||||||
Please see LICENSE in the repository root for full details.
|
Please see LICENSE in the repository root for full details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { test, vi, onTestFinished, it, describe } from "vitest";
|
import { test, vi, onTestFinished, it, describe, expect } from "vitest";
|
||||||
import {
|
import {
|
||||||
BehaviorSubject,
|
BehaviorSubject,
|
||||||
combineLatest,
|
combineLatest,
|
||||||
@@ -899,6 +899,41 @@ describe.each([
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// TODO add media to lk mocks
|
||||||
|
test.skip("onPipMediaOrientationUpdate is called with the spotlight media orientation", () => {
|
||||||
|
// Set the spy before creating the view model so the initial call is captured
|
||||||
|
const onPipMediaOrientationUpdate = vi.fn();
|
||||||
|
window.controls.onPipMediaOrientationUpdate = onPipMediaOrientationUpdate;
|
||||||
|
onTestFinished(() => {
|
||||||
|
window.controls.onPipMediaOrientationUpdate = undefined;
|
||||||
|
});
|
||||||
|
|
||||||
|
withTestScheduler(({ behavior }) => {
|
||||||
|
// Alice starts as a regular participant, then shares her screen, then stops
|
||||||
|
const aliceSharingInputMarbles = "nyn";
|
||||||
|
|
||||||
|
withCallViewModel(
|
||||||
|
{
|
||||||
|
remoteParticipants$: constant([aliceParticipant]),
|
||||||
|
rtcMembers$: constant([localRtcMember, aliceRtcMember]),
|
||||||
|
sharingScreen: new Map([
|
||||||
|
[aliceParticipant, behavior(aliceSharingInputMarbles, yesNo)],
|
||||||
|
]),
|
||||||
|
},
|
||||||
|
() => {},
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Should be called exactly 3 times:
|
||||||
|
// 1. Initially with "portrait" (Alice is in spotlight as a user, default portrait orientation)
|
||||||
|
// 2. With "landscape" when Alice starts screen sharing (screen shares always use landscape)
|
||||||
|
// 3. With "portrait" again when Alice stops screen sharing and returns to user tile
|
||||||
|
expect(onPipMediaOrientationUpdate).toHaveBeenCalledTimes(3);
|
||||||
|
expect(onPipMediaOrientationUpdate).toHaveBeenNthCalledWith(1, "portrait");
|
||||||
|
expect(onPipMediaOrientationUpdate).toHaveBeenNthCalledWith(2, "landscape");
|
||||||
|
expect(onPipMediaOrientationUpdate).toHaveBeenNthCalledWith(3, "portrait");
|
||||||
|
});
|
||||||
|
|
||||||
test("PiP tile in expanded spotlight layout switches speakers without layout shifts", () => {
|
test("PiP tile in expanded spotlight layout switches speakers without layout shifts", () => {
|
||||||
withTestScheduler(({ behavior, schedule, expectObservable }) => {
|
withTestScheduler(({ behavior, schedule, expectObservable }) => {
|
||||||
// Switch to spotlight immediately
|
// Switch to spotlight immediately
|
||||||
|
|||||||
@@ -1208,13 +1208,12 @@ export function createCallViewModel$(
|
|||||||
}
|
}
|
||||||
return layout;
|
return layout;
|
||||||
}),
|
}),
|
||||||
tap((orientation) => {
|
|
||||||
logger.info("controls api pip orientation updated:", orientation);
|
|
||||||
window.controls.onPipMediaOrientationUpdate?.(orientation);
|
|
||||||
}),
|
|
||||||
scope.bind(),
|
scope.bind(),
|
||||||
)
|
)
|
||||||
.subscribe();
|
.subscribe((orientation) => {
|
||||||
|
logger.info("controls api pip orientation updated:", orientation);
|
||||||
|
window.controls.onPipMediaOrientationUpdate?.(orientation);
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The media to be used to produce a layout.
|
* The media to be used to produce a layout.
|
||||||
|
|||||||
Reference in New Issue
Block a user