1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-18 16:30:10 -07:00
deskreen/app/features/PeerConnection/createDesktopCapturerStream.spec.ts
2021-02-11 01:23:43 +02:00

91 lines
2.9 KiB
TypeScript

/* eslint-disable @typescript-eslint/ban-ts-comment */
import {
TEST_ROOM_ID,
TEST_SHARING_SESSION_ID,
TEST_USER,
} from './mocks/testVars';
import PeerConnection from '.';
import RoomIDService from '../../server/RoomIDService';
import ConnectedDevicesService from '../ConnectedDevicesService';
import SharingSessionService from '../SharingSessionService';
import DesktopCapturerSourceType from '../DesktopCapturerSourcesService/DesktopCapturerSourceType';
import createDesktopCapturerStream from './createDesktopCapturerStream';
import getDesktopSourceStreamBySourceID from './getDesktopSourceStreamBySourceID';
import DesktopCapturerSourcesService from '../DesktopCapturerSourcesService';
jest.useFakeTimers();
jest.mock('simple-peer');
jest.mock('./getDesktopSourceStreamBySourceID', () => {
return jest.fn();
});
const MOCK_MEDIA_STREAM = ({} as unknown) as MediaStream;
const TEST_SCREEN_SOURCE_ID = 'screen:1234fa';
const TEST_WINDOW_SOURCE_ID = 'window:1234fa';
const TEST_DISPLAY_SIZE = { width: 640, height: 480 };
describe('createDesktopCapturerStream callback', () => {
let peerConnection: PeerConnection;
beforeEach(() => {
// @ts-ignore
getDesktopSourceStreamBySourceID.mockReturnValueOnce(MOCK_MEDIA_STREAM);
process.env.RUN_MODE = 'dev';
peerConnection = new PeerConnection(
TEST_ROOM_ID,
TEST_SHARING_SESSION_ID,
TEST_USER,
{} as RoomIDService,
{} as ConnectedDevicesService,
{} as SharingSessionService,
{} as DesktopCapturerSourcesService
);
peerConnection.desktopCapturerSourceID = DesktopCapturerSourceType.SCREEN;
});
afterEach(() => {
process.env.RUN_MODE = 'test';
jest.clearAllMocks();
jest.restoreAllMocks();
});
describe('when createDesktopCapturerStream called properly', () => {
describe('when source type is screen', () => {
it('should call getDesktopSourceStreamBySourceID with proper parameters and set localStream', async () => {
peerConnection.sourceDisplaySize = { width: 640, height: 480 };
await createDesktopCapturerStream(
peerConnection,
TEST_SCREEN_SOURCE_ID
);
expect(getDesktopSourceStreamBySourceID).toBeCalledWith(
TEST_SCREEN_SOURCE_ID,
TEST_DISPLAY_SIZE.width,
TEST_DISPLAY_SIZE.height,
0.5,
1
);
expect(peerConnection.localStream).toBe(MOCK_MEDIA_STREAM);
});
});
describe('when source type is window', () => {
it('should call getDesktopSourceStreamBySourceID with proper parameters and set localStream', async () => {
await createDesktopCapturerStream(
peerConnection,
TEST_WINDOW_SOURCE_ID
);
expect(getDesktopSourceStreamBySourceID).toBeCalledWith(
TEST_WINDOW_SOURCE_ID
);
expect(peerConnection.localStream).toBe(MOCK_MEDIA_STREAM);
});
});
});
});