mirror of
https://github.com/pavlobu/deskreen.git
synced 2025-05-18 08:20:10 -07:00
107 lines
3.0 KiB
TypeScript
107 lines
3.0 KiB
TypeScript
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
import path from 'path';
|
|
import { BrowserWindow } from 'electron';
|
|
import PeerConnectionHelperRendererService from '.';
|
|
|
|
jest.useFakeTimers();
|
|
|
|
jest.mock('electron', () => {
|
|
return {
|
|
BrowserWindow: jest.fn().mockImplementation(() => {
|
|
return {
|
|
loadURL: jest.fn(),
|
|
webContents: {
|
|
on: jest.fn(),
|
|
send: jest.fn(),
|
|
toggleDevTools: jest.fn(),
|
|
},
|
|
on: jest.fn(),
|
|
};
|
|
}),
|
|
};
|
|
});
|
|
|
|
const testAppPath = '/a/b/c/deskreen_app';
|
|
const testBrowserWindowParams = {
|
|
show: false,
|
|
// width: 300,
|
|
// height: 300,
|
|
// x: 2147483647,
|
|
// y: 2147483647,
|
|
// transparent: true,
|
|
// frame: false,
|
|
// // skipTaskbar: true,
|
|
// focusable: false,
|
|
// // parent: mainWindow,
|
|
// hasShadow: false,
|
|
// titleBarStyle: 'hidden',
|
|
webPreferences:
|
|
(process.env.NODE_ENV === 'development' ||
|
|
process.env.E2E_BUILD === 'true') &&
|
|
process.env.ERB_SECURE !== 'true'
|
|
? {
|
|
contextIsolation: true,
|
|
nodeIntegration: true,
|
|
enableRemoteModule: true,
|
|
}
|
|
: {
|
|
preload: path.join(
|
|
testAppPath,
|
|
'dist/peerConnectionHelperRendererWindow.renderer.prod.js'
|
|
),
|
|
enableRemoteModule: true,
|
|
},
|
|
};
|
|
|
|
describe('PeerConnectionHelperRendererService tests', () => {
|
|
let service: PeerConnectionHelperRendererService;
|
|
|
|
beforeEach(() => {
|
|
jest.clearAllMocks();
|
|
jest.restoreAllMocks();
|
|
|
|
service = new PeerConnectionHelperRendererService(testAppPath);
|
|
});
|
|
|
|
describe('when PeerConnectionHelperRendererService created properly', () => {
|
|
it('should set appPath to what was passed to constructor', () => {
|
|
expect(service.appPath).toEqual(testAppPath);
|
|
});
|
|
|
|
describe('when createPeerConnectionHelperRenderer was called', () => {
|
|
it('should call new BrowserWindow from electron', () => {
|
|
service.createPeerConnectionHelperRenderer();
|
|
|
|
expect(BrowserWindow).toHaveBeenCalledTimes(1);
|
|
expect(BrowserWindow).toHaveBeenCalledWith(testBrowserWindowParams);
|
|
});
|
|
|
|
describe('when process.env.NODE_ENV === dev', () => {
|
|
it('should open developer tools', () => {
|
|
const prevNodeEnv = process.env.NODE_ENV;
|
|
process.env.NODE_ENV = 'dev';
|
|
const window = service.createPeerConnectionHelperRenderer();
|
|
|
|
expect(window.webContents.toggleDevTools).toBeCalled();
|
|
|
|
process.env.NODE_ENV = prevNodeEnv;
|
|
});
|
|
});
|
|
|
|
describe('when .on(did-finish-load callback executed', () => {
|
|
it('should call .webContents.send with start-peer-connection', () => {
|
|
const window = service.createPeerConnectionHelperRenderer();
|
|
|
|
// @ts-ignore
|
|
const callback = window.webContents.on.mock.calls[0][1]; // get .on('did-finish-load' mock call
|
|
callback();
|
|
|
|
expect(window.webContents.send).toBeCalledWith(
|
|
'start-peer-connection'
|
|
);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|