1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-18 08:20:10 -07:00
deskreen/app/features/PeerConnection/handlePeerOnData.spec.ts
2022-05-31 23:39:05 +02:00

205 lines
7.2 KiB
TypeScript

// /* eslint-disable @typescript-eslint/ban-ts-comment */
// import handlePeerOnData from './handlePeerOnData';
// import getDesktopSourceStreamBySourceID from './getDesktopSourceStreamBySourceID';
// 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 NullSimplePeer from './NullSimplePeer';
// import prepareDataMessageToSendScreenSourceType from './prepareDataMessageToSendScreenSourceType';
// import DesktopCapturerSourcesService from '../DesktopCapturerSourcesService';
// jest.useFakeTimers();
// jest.mock('simple-peer');
// jest.mock('./getDesktopSourceStreamBySourceID', () => {
// return jest.fn();
// });
// const TEST_DATA_SET_VIDEO_QUALITY_05 = `
// {
// "type": "set_video_quality",
// "payload": {
// "value": 0.5
// }
// }
// `;
// const TEST_DATA_GET_SHARING_SOURCE_TYPE = `
// {
// "type": "get_sharing_source_type",
// "payload": {
// }
// }
// `;
// describe('handlePeerOnData callback', () => {
// let peerConnection: PeerConnection;
// beforeEach(() => {
// 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(() => {
// jest.clearAllMocks();
// jest.restoreAllMocks();
// });
// describe('when handlePeerOnData called properly', () => {
// describe('when handlePeerOnData called with set_video_quality data and when sharing source is SCREEN', () => {
// it('should create new stream', () => {
// handlePeerOnData(peerConnection, TEST_DATA_SET_VIDEO_QUALITY_05);
// expect(getDesktopSourceStreamBySourceID).toBeCalled();
// });
// it('should call replaceTrack() on peer', async () => {
// // @ts-ignore
// getDesktopSourceStreamBySourceID.mockImplementation(
// () =>
// (({
// getVideoTracks: () => [{ stop: jest.fn() }],
// } as unknown) as MediaStream)
// );
// peerConnection.localStream = ({
// getVideoTracks: () => [{ stop: jest.fn() }],
// } as unknown) as MediaStream;
// peerConnection.peer = ({
// replaceTrack: jest.fn(),
// } as unknown) as typeof NullSimplePeer;
// await handlePeerOnData(peerConnection, TEST_DATA_SET_VIDEO_QUALITY_05);
// expect(peerConnection.peer.replaceTrack).toBeCalled();
// });
// it('should call .stop() on old track to clear memory', async () => {
// // @ts-ignore
// getDesktopSourceStreamBySourceID.mockImplementation(
// () =>
// (({
// getVideoTracks: () => [{ stop: jest.fn() }],
// } as unknown) as MediaStream)
// );
// const oldTrackStopFunctionMock = jest.fn();
// peerConnection.localStream = ({
// getVideoTracks: () => [{ stop: oldTrackStopFunctionMock }],
// } as unknown) as MediaStream;
// peerConnection.peer = ({
// replaceTrack: jest.fn(),
// } as unknown) as typeof NullSimplePeer;
// await handlePeerOnData(peerConnection, TEST_DATA_SET_VIDEO_QUALITY_05);
// expect(oldTrackStopFunctionMock).toBeCalled();
// });
// });
// describe('when handlePeerOnData called with set_video_quality data and when sharing source is WINDOW', () => {
// it('should NOT create new stream', () => {
// peerConnection.desktopCapturerSourceID =
// DesktopCapturerSourceType.WINDOW;
// handlePeerOnData(peerConnection, TEST_DATA_SET_VIDEO_QUALITY_05);
// expect(getDesktopSourceStreamBySourceID).not.toBeCalled();
// });
// it('should NOT call replaceTrack() on peer', async () => {
// peerConnection.desktopCapturerSourceID =
// DesktopCapturerSourceType.WINDOW;
// // @ts-ignore
// getDesktopSourceStreamBySourceID.mockImplementation(
// () =>
// (({
// getVideoTracks: () => [{ stop: jest.fn() }],
// } as unknown) as MediaStream)
// );
// peerConnection.localStream = ({
// getVideoTracks: () => [{ stop: jest.fn() }],
// } as unknown) as MediaStream;
// peerConnection.peer = ({
// replaceTrack: jest.fn(),
// } as unknown) as typeof NullSimplePeer;
// await handlePeerOnData(peerConnection, TEST_DATA_SET_VIDEO_QUALITY_05);
// expect(peerConnection.peer.replaceTrack).not.toBeCalled();
// });
// it('should NOT call .stop() on old track to clear memory', async () => {
// peerConnection.desktopCapturerSourceID =
// DesktopCapturerSourceType.WINDOW;
// // @ts-ignore
// getDesktopSourceStreamBySourceID.mockImplementation(
// () =>
// (({
// getVideoTracks: () => [{ stop: jest.fn() }],
// } as unknown) as MediaStream)
// );
// const oldTrackStopFunctionMock = jest.fn();
// peerConnection.localStream = ({
// getVideoTracks: () => [{ stop: oldTrackStopFunctionMock }],
// } as unknown) as MediaStream;
// peerConnection.peer = ({
// replaceTrack: jest.fn(),
// } as unknown) as typeof NullSimplePeer;
// await handlePeerOnData(peerConnection, TEST_DATA_SET_VIDEO_QUALITY_05);
// expect(oldTrackStopFunctionMock).not.toBeCalled();
// });
// });
// describe('when handlePeerOnData called with get_sharing_source_type data', () => {
// describe('when sharing source type is SCREEN', () => {
// it('should call peer.send() with proper data', () => {
// peerConnection.peer = ({
// send: jest.fn(),
// } as unknown) as typeof NullSimplePeer;
// handlePeerOnData(peerConnection, TEST_DATA_GET_SHARING_SOURCE_TYPE);
// expect(peerConnection.peer.send).toBeCalledWith(
// prepareDataMessageToSendScreenSourceType(
// DesktopCapturerSourceType.SCREEN
// )
// );
// });
// });
// describe('when sharing source type is WINDOW', () => {
// it('should call peer.send() with proper data', () => {
// peerConnection.desktopCapturerSourceID =
// DesktopCapturerSourceType.WINDOW;
// peerConnection.peer = ({
// send: jest.fn(),
// } as unknown) as typeof NullSimplePeer;
// handlePeerOnData(peerConnection, TEST_DATA_GET_SHARING_SOURCE_TYPE);
// expect(peerConnection.peer.send).toBeCalledWith(
// prepareDataMessageToSendScreenSourceType(
// DesktopCapturerSourceType.WINDOW
// )
// );
// });
// });
// });
// });
// });