1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-18 08:20:10 -07:00
2022-05-31 23:35:57 +02:00

446 lines
16 KiB
TypeScript

// /* eslint-disable @typescript-eslint/ban-ts-comment */
// import { ipcRenderer } from 'electron';
// import PeerConnection from '.';
// import RoomIDService from '../../server/RoomIDService';
// import ConnectedDevicesService from '../ConnectedDevicesService';
// import SharingSessionService from '../SharingSessionService';
// import DesktopCapturerSourcesService from '../DesktopCapturerSourcesService';
// import {
// TEST_ROOM_ID,
// TEST_SHARING_SESSION_ID,
// TEST_USER,
// } from './mocks/testVars';
// import setDisplaySizeFromLocalStream from './handleSetDisplaySizeFromLocalStream';
// import handleSelfDestroy from './handleSelfDestroy';
// import handleRecieveEncryptedMessage from './handleRecieveEncryptedMessage';
// import handleCreatePeer from './handleCreatePeer';
// import { prepare as prepareMessage } from '../../utils/message';
// import getAppLanguage from '../../utils/getAppLanguage';
// import getAppTheme from '../../utils/getAppTheme';
// jest.useFakeTimers();
// jest.mock('simple-peer');
// const TEST_SOURCE_DISPLAY_SIZE = {
// width: 640,
// height: 480,
// };
// const TEST_DATA_TO_SEND_IN_ENCRYPTED_MESSAGE = 'oji23oi12p34';
// jest.mock('electron', () => {
// return {
// ipcRenderer: {
// invoke: jest.fn().mockImplementation(() => {
// return TEST_SOURCE_DISPLAY_SIZE;
// }),
// },
// };
// });
// jest.mock('./handleSetDisplaySizeFromLocalStream');
// jest.mock('./handleSelfDestroy');
// jest.mock('../../utils/message', () => {
// return {
// prepare: jest.fn().mockReturnValue({
// toSend: TEST_DATA_TO_SEND_IN_ENCRYPTED_MESSAGE,
// }),
// };
// });
// jest.mock('./handleRecieveEncryptedMessage');
// jest.mock('./handleCreatePeer');
// const TEST_DISPLAY_ID = '21';
// describe('PeerConnection index.ts tests', () => {
// let peerConnection: PeerConnection;
// const mockGetSourceDisplayIDBySourceID = jest.fn().mockImplementation(() => {
// return TEST_DISPLAY_ID;
// });
// beforeEach(() => {
// peerConnection = new PeerConnection(
// TEST_ROOM_ID,
// TEST_SHARING_SESSION_ID,
// TEST_USER,
// {} as RoomIDService,
// {} as ConnectedDevicesService,
// {} as SharingSessionService,
// ({} as unknown) as DesktopCapturerSourcesService
// );
// peerConnection.displayID = 'screen:123idid';
// });
// afterEach(() => {
// jest.clearAllMocks();
// jest.restoreAllMocks();
// });
// describe('when PeerConnection constructor was called', () => {
// it('should be created with internal properties correclty', () => {
// expect(peerConnection.roomIDService).toBeDefined();
// expect(peerConnection.connectedDevicesService).toBeDefined();
// expect(peerConnection.sharingSessionService).toBeDefined();
// });
// describe('when notifyClientWithNewLanguage was called', () => {
// it('should call sendEncryptedMessage with proper payload', () => {
// peerConnection.sendEncryptedMessage = jest.fn();
// peerConnection.notifyClientWithNewLanguage();
// expect(peerConnection.sendEncryptedMessage).toBeCalledWith({
// type: 'APP_LANGUAGE',
// payload: { value: getAppLanguage() },
// });
// });
// });
// describe('when notifyClientWithNewColorTheme was called', () => {
// it('should call sendEncryptedMessage with proper payload', () => {
// peerConnection.sendEncryptedMessage = jest.fn();
// peerConnection.notifyClientWithNewColorTheme();
// expect(peerConnection.sendEncryptedMessage).toBeCalledWith({
// type: 'APP_THEME',
// payload: { value: getAppTheme() },
// });
// });
// });
// describe('when setDesktopCapturerSourceID was called', () => {
// it('should set .desktopCapturerSourceID and call other callbacks', () => {
// const testSourceID = 'screen:asdfsffs1234';
// process.env.RUN_MODE = 'dev';
// peerConnection.setDisplayIDByDesktopCapturerSourceID = jest.fn();
// peerConnection.handleCreatePeerAfterDesktopCapturerSourceIDWasSet = jest.fn();
// peerConnection.setDesktopCapturerSourceID(testSourceID);
// process.env.RUN_MODE = 'test';
// expect(peerConnection.desktopCapturerSourceID).toBe(testSourceID);
// expect(
// peerConnection.setDisplayIDByDesktopCapturerSourceID
// ).toBeCalled();
// expect(
// peerConnection.handleCreatePeerAfterDesktopCapturerSourceIDWasSet
// ).toBeCalled();
// });
// });
// describe('when setDisplayIDByDesktopCapturerSourceID was called', () => {
// describe('when desktopCapture source id is screen', () => {
// it('should set .desktopCapturerSourceID and call other callbacks', () => {
// peerConnection.desktopCapturerSourceID = 'screen:asdfa2';
// peerConnection.setDisplaySizeRetreivedFromMainProcess = jest.fn();
// peerConnection.desktopCapturerSourcesService = ({
// getSourceDisplayIDBySourceID: mockGetSourceDisplayIDBySourceID,
// } as unknown) as DesktopCapturerSourcesService;
// peerConnection.setDisplayIDByDesktopCapturerSourceID();
// expect(
// peerConnection.setDisplaySizeRetreivedFromMainProcess
// ).toBeCalled();
// expect(mockGetSourceDisplayIDBySourceID).toBeCalled();
// expect(peerConnection.displayID).toBe(TEST_DISPLAY_ID);
// });
// });
// describe('when desktopCapture source id is window', () => {
// it('should not set anything', () => {
// peerConnection.desktopCapturerSourceID = 'window:asdfa2';
// peerConnection.setDisplaySizeRetreivedFromMainProcess = jest.fn();
// peerConnection.desktopCapturerSourcesService = ({
// getSourceDisplayIDBySourceID: mockGetSourceDisplayIDBySourceID,
// } as unknown) as DesktopCapturerSourcesService;
// peerConnection.setDisplayIDByDesktopCapturerSourceID();
// expect(
// peerConnection.setDisplaySizeRetreivedFromMainProcess
// ).not.toBeCalled();
// expect(mockGetSourceDisplayIDBySourceID).not.toBeCalled();
// expect(peerConnection.displayID).not.toBe(TEST_DISPLAY_ID);
// });
// });
// });
// describe('when setDisplaySizeRetreivedFromMainProcess was called', () => {
// it('should call .invoke on ipcRenderer with proper parameters', async () => {
// await peerConnection.setDisplaySizeRetreivedFromMainProcess();
// expect(ipcRenderer.invoke).toBeCalledWith(
// 'get-display-size-by-display-id',
// peerConnection.displayID
// );
// expect(peerConnection.sourceDisplaySize).toBe(TEST_SOURCE_DISPLAY_SIZE);
// });
// describe('when .invoke returned "undefined"', () => {
// it('should not set sourceDisplaySize', async () => {
// // @ts-ignore
// ipcRenderer.invoke.mockImplementation(() => {
// return 'undefined';
// });
// await peerConnection.setDisplaySizeRetreivedFromMainProcess();
// expect(ipcRenderer.invoke).toBeCalledWith(
// 'get-display-size-by-display-id',
// peerConnection.displayID
// );
// expect(peerConnection.sourceDisplaySize).not.toBe(
// TEST_SOURCE_DISPLAY_SIZE
// );
// });
// });
// });
// describe('when handleCreatePeerAfterDesktopCapturerSourceIDWasSet was called', () => {
// describe('when .sourceDisplaySize is defined', () => {
// it('should call setDisplaySizeFromLocalStream', async () => {
// peerConnection.createPeer = jest.fn();
// peerConnection.sourceDisplaySize = TEST_SOURCE_DISPLAY_SIZE;
// await peerConnection.handleCreatePeerAfterDesktopCapturerSourceIDWasSet();
// expect(peerConnection.createPeer).toBeCalled();
// expect(setDisplaySizeFromLocalStream).not.toBeCalled();
// });
// });
// describe('when .sourceDisplaySize is NOT defined', () => {
// it('should call setDisplaySizeFromLocalStream', async () => {
// peerConnection.createPeer = jest.fn();
// await peerConnection.handleCreatePeerAfterDesktopCapturerSourceIDWasSet();
// expect(peerConnection.createPeer).toBeCalled();
// expect(setDisplaySizeFromLocalStream).toBeCalled();
// });
// });
// });
// describe('when setOnDeviceConnectedCallback was called properly', () => {
// it('should set onDeviceConnectedCallback', () => {
// // eslint-disable-next-line @typescript-eslint/no-unused-vars
// const testCallback = (_: Device) => {};
// peerConnection.setOnDeviceConnectedCallback(testCallback);
// expect(peerConnection.onDeviceConnectedCallback).toBe(testCallback);
// });
// });
// describe('when denyConnectionForPartner was called properly', () => {
// it('should call sendEncryptedMessage with proper payload and call .disconnectPartner', async () => {
// const testPayload = {
// type: 'DENY_TO_CONNECT',
// payload: {},
// };
// peerConnection.sendEncryptedMessage = jest.fn();
// peerConnection.disconnectPartner = jest.fn();
// await peerConnection.denyConnectionForPartner();
// expect(peerConnection.sendEncryptedMessage).toBeCalledWith(testPayload);
// expect(peerConnection.disconnectPartner).toBeCalled();
// });
// });
// describe('when sendUserAllowedToConnect was called properly', () => {
// it('should call sendEncryptedMessage with proper payload', () => {
// const testPayload = {
// type: 'ALLOWED_TO_CONNECT',
// payload: {},
// };
// peerConnection.sendEncryptedMessage = jest.fn();
// peerConnection.sendUserAllowedToConnect();
// expect(peerConnection.sendEncryptedMessage).toBeCalledWith(testPayload);
// });
// });
// describe('when disconnectByHostMachineUser was called properly', () => {
// it('should call sendEncryptedMessage with proper payload and call .disconnectPartner and .selfDestroy', async () => {
// const testPayload = {
// type: 'DISCONNECT_BY_HOST_MACHINE_USER',
// payload: {},
// };
// peerConnection.sendEncryptedMessage = jest.fn();
// peerConnection.disconnectPartner = jest.fn();
// peerConnection.selfDestroy = jest.fn();
// await peerConnection.disconnectByHostMachineUser();
// expect(peerConnection.sendEncryptedMessage).toBeCalledWith(testPayload);
// expect(peerConnection.disconnectPartner).toBeCalled();
// expect(peerConnection.selfDestroy).toBeCalled();
// });
// });
// describe('when disconnectPartner was called properly', () => {
// it('should call sendEncryptedMessage with proper payload', () => {
// const testEmitData = {
// ip: peerConnection.partnerDeviceDetails.deviceIP,
// };
// peerConnection.socket = ({
// emit: jest.fn(),
// } as unknown) as SocketIOClient.Socket;
// peerConnection.disconnectPartner();
// expect(peerConnection.socket.emit).toBeCalledWith(
// 'DISCONNECT_SOCKET_BY_DEVICE_IP',
// testEmitData
// );
// expect(peerConnection.partnerDeviceDetails).toEqual({});
// });
// });
// describe('when selfDestroy was called', () => {
// it('should call handleSelfDestroy', () => {
// peerConnection.selfDestroy();
// expect(handleSelfDestroy).toBeCalled();
// });
// });
// describe('when emitUserEnter was called', () => {
// describe('when .socket is defined', () => {
// it('should call socket emit with proper parameters', () => {
// const testEmitData = {
// username: peerConnection.user.username,
// publicKey: peerConnection.user.publicKey,
// };
// peerConnection.socket = ({
// emit: jest.fn(),
// } as unknown) as SocketIOClient.Socket;
// peerConnection.emitUserEnter();
// expect(peerConnection.socket.emit).toBeCalledWith(
// 'USER_ENTER',
// testEmitData
// );
// });
// });
// });
// describe('when sendEncryptedMessage was called', () => {
// describe('when it was NOT called properly', () => {
// it('should not call "prepare" from message.ts if socket is not defined', () => {
// peerConnection.socket = (undefined as unknown) as SocketIOClient.Socket;
// peerConnection.sendEncryptedMessage(
// ({} as unknown) as SendEncryptedMessagePayload
// );
// expect(prepareMessage).not.toBeCalled();
// });
// it('should not call "prepare" from message.ts if user is not defined', () => {
// peerConnection.user = (undefined as unknown) as LocalPeerUser;
// peerConnection.sendEncryptedMessage(
// ({} as unknown) as SendEncryptedMessagePayload
// );
// expect(prepareMessage).not.toBeCalled();
// });
// it('should not call "prepare" from message.ts if partner is not defined', () => {
// peerConnection.partner = (undefined as unknown) as LocalPeerUser;
// peerConnection.sendEncryptedMessage(
// ({} as unknown) as SendEncryptedMessagePayload
// );
// expect(prepareMessage).not.toBeCalled();
// });
// });
// describe('when it was called properly', () => {
// it('should call "prepare" from message.ts and .socket.emit(ENCRYPTED_MESSAGE', async () => {
// const testPayload = ({} as unknown) as SendEncryptedMessagePayload;
// peerConnection.socket = ({
// emit: jest.fn(),
// } as unknown) as SocketIOClient.Socket;
// peerConnection.partner = TEST_USER;
// await peerConnection.sendEncryptedMessage(testPayload);
// expect(prepareMessage).toBeCalledWith(
// testPayload,
// TEST_USER,
// TEST_USER
// );
// expect(peerConnection.socket.emit).toBeCalledWith(
// 'ENCRYPTED_MESSAGE',
// TEST_DATA_TO_SEND_IN_ENCRYPTED_MESSAGE
// );
// });
// });
// });
// describe('when receiveEncryptedMessage was called', () => {
// describe('when peerConnection user is NOT defined', () => {
// it('should NOT call handleRecieveEncryptedMessage', () => {
// const testPayload = {} as ReceiveEncryptedMessagePayload;
// peerConnection.user = (undefined as unknown) as LocalPeerUser;
// peerConnection.receiveEncryptedMessage(testPayload);
// expect(handleRecieveEncryptedMessage).not.toBeCalled();
// });
// });
// describe('when peerConnection user is defined', () => {
// it('should call handleRecieveEncryptedMessage', () => {
// const testPayload = {} as ReceiveEncryptedMessagePayload;
// peerConnection.receiveEncryptedMessage(testPayload);
// expect(handleRecieveEncryptedMessage).toBeCalled();
// });
// });
// });
// describe('when callPeer was called', () => {
// describe('when it was called when call already started', () => {
// it('should NOT call .sendEncryptedMessage', () => {
// process.env.RUN_MODE = 'dev';
// peerConnection.isCallStarted = true;
// peerConnection.sendEncryptedMessage = jest.fn();
// peerConnection.signalsDataToCallUser = ['asdfasdf'];
// peerConnection.callPeer();
// process.env.RUN_MODE = 'test';
// expect(peerConnection.sendEncryptedMessage).not.toBeCalled();
// });
// });
// describe('when it was called when call NOT started', () => {
// it('should call .sendEncryptedMessage', () => {
// process.env.RUN_MODE = 'dev';
// peerConnection.sendEncryptedMessage = jest.fn();
// peerConnection.signalsDataToCallUser = ['asdfasdf'];
// peerConnection.callPeer();
// process.env.RUN_MODE = 'test';
// expect(peerConnection.sendEncryptedMessage).toBeCalled();
// });
// });
// });
// describe('when createPeer was called', () => {
// it('should call handleCreatePeer callback', () => {
// peerConnection.createPeer();
// expect(handleCreatePeer).toBeCalled();
// });
// });
// });
// });