mirror of
https://github.com/finos/SymphonyElectron.git
synced 2024-12-28 09:51:06 -06:00
13e82bac00
* Typescript 🎉 * Typescript 🎉 (logger, get-guid, string-format and throttle) * Refactor typescript code * consolidate all the utility functions to one file * refactor protocol handler feature * Typescript: Add code documentation Add pre-commit hooks * Typescript: Fix logger formatting * Typescript: Add support for react * Typescript: Completed about app * Typescript: Completed about app * Typescript: Completed about app * Typescript - Fix issues with about-app and add login to convert less to css * Typescript - Fix loading screen * Typescript - Add custom title bar * Typescript - Add method to get locale * Typescript - Add logic to clean up old logs * Typescript - Add set badge count api * Typescript - Complete application menu * Typescript - Add logic to translate menu items * Typescript - freeze window.ssf api * Typescript - Handle popup menu on alt key press * Typescript - Completed activity detection * Typescript - Completed screen snippet * Typescript - Add login to close screen snippet * Typescript - Completed window actions & snackbar, Updated i18n module * Typescript - Completed native crypto implementation & fixed bugs * Typescript - Completed Desktop capturer & screen picker implementation * Typescript - Optimize window actions * Typescript - Add support for child window * Typescript - fix pop url validation issue & browserify preload * Typescript - Completed context menu implementation and fixed screen snippet * Typescript - Completed screen sharing indicator and fixed i18n usage issue * Typescript - Fix i18n locale setting issue * Typescript - Completed download manager * Typescript - Completed Basic auth * Typescript - Network connectivity dialog * Typescript - Handle certificate error * Typescript - Add translation for certificate error dialog buttons * Typescript - Add gulp tasks to compile less, typescript and copy files * Typescript - Fix some issues with custom title bar, loading screen & screen snippet * Typescript - Remove ES2015 lib * :typescript: - Do not inject custom title bar for mac * :typescript: - Fix screen sharing indicator text and format string * Typescript - Fix esc to full screen * Typescript - handle multiple/single instance of the client and add safety checks * Typescript - Refactor code base * Typescript - Optimize window validation and fix screen picker issue * Typescript - Optimize protocol handler * typescript: logger unit test * typescript: activityDetection unit test (#560) * ELECTRON-1022 - Create app bridge that communicates between renderer and preload via postMessage * ELECTRON-1024 - Add support for screen share and screen sharing indicator * config unit test (#566) * ELECTRON-1024 - Fix screen sharing indicator close issue * ELECTRON-1022 - Bump Symphony version to 5.0.0 (1.55) * fixing jest coverage output report (#575) * protocol handle unit test (#576) * Typescript - Remove unwanted checks in protocol handler and add test cases * added more tests to increase coverage to 100 for protocol handler * Typescript download manager unit test (#579) * adding enzyme * download manager unit test * Typescript - Completed notification workflow * about app unit test * Typescript - Fix notification styles * fixing Compiler error: Generic type ReactElement<P, T> (#583) * fix app path on windows (#580) * basic auth unit test (#582) * screen picker unit test (#587) * screen picker unit test * screen sharing indicator unit test * loading screen unit test (#588) * improving snapshot using snapshotSerializers to remove unnecessary things (#596) * Typescript - Enforce braces for if/for/do/while statements. * Typescript - Fix Lint issues and Unit test * Typescript - Enable eofline (Ensure the file ends with a newline.) * Typescript - Update logger logic and format * Typescript - Provide option for user to set custom log path * Typescript - Fix eofline in css files * Typescript - ignore spec from compiling and remove unwanted rebuild command
75 lines
3.1 KiB
TypeScript
75 lines
3.1 KiB
TypeScript
import { shallow } from 'enzyme';
|
|
import * as React from 'react';
|
|
import ScreenSharingIndicator from '../src/renderer/components/screen-sharing-indicator';
|
|
import { ipcRenderer } from './__mocks__/electron';
|
|
|
|
jest.mock('../src/common/env', () => {
|
|
return {
|
|
isWindowsOS: false,
|
|
isMac: true,
|
|
};
|
|
});
|
|
|
|
describe('screen sharing indicator', () => {
|
|
// events
|
|
const onEventLabel = 'on';
|
|
const removeListenerEventLabel = 'removeListener';
|
|
const sendEventLabel = 'send';
|
|
const symphonyAPIEventLabel = 'symphony-api';
|
|
const screenSharingIndicatorDataEventLabel = 'screen-sharing-indicator-data';
|
|
// state moked
|
|
const screenSharingIndicatorStateMock = { id: 10 };
|
|
|
|
it('should render correctly', () => {
|
|
const wrapper = shallow(React.createElement(ScreenSharingIndicator));
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
it('should call `close` correctly', () => {
|
|
const customSelector = 'a.hide-button';
|
|
const closeIpcRendererMock = {
|
|
cmd: 'close-window',
|
|
windowType: 'screen-sharing-indicator',
|
|
winKey: 'id-123',
|
|
};
|
|
const spy = jest.spyOn(ipcRenderer, sendEventLabel);
|
|
const wrapper = shallow(React.createElement(ScreenSharingIndicator));
|
|
wrapper.setState({ streamId: 'id-123' });
|
|
wrapper.find(customSelector).simulate('click');
|
|
expect(spy).lastCalledWith(symphonyAPIEventLabel, closeIpcRendererMock);
|
|
});
|
|
|
|
it('should call `stopScreenShare` correctly', () => {
|
|
const customSelector = 'button.stop-sharing-button';
|
|
const stopScreenSharingEventLabel = 'stop-screen-sharing';
|
|
const spy = jest.spyOn(ipcRenderer, sendEventLabel);
|
|
const wrapper = shallow(React.createElement(ScreenSharingIndicator));
|
|
wrapper.setState(screenSharingIndicatorStateMock);
|
|
wrapper.find(customSelector).simulate('click');
|
|
expect(spy).lastCalledWith(stopScreenSharingEventLabel, 10);
|
|
});
|
|
|
|
it('should call `updateState` correctly', () => {
|
|
const setStateEventLabel = 'setState';
|
|
const spy = jest.spyOn(ScreenSharingIndicator.prototype, setStateEventLabel);
|
|
shallow(React.createElement(ScreenSharingIndicator));
|
|
ipcRenderer.send(screenSharingIndicatorDataEventLabel, screenSharingIndicatorStateMock);
|
|
expect(spy).lastCalledWith({ id: 10 });
|
|
});
|
|
|
|
describe('`screen-sharing-indicator-data` event', () => {
|
|
|
|
it('should call `screen-sharing-indicator-data` when component is mounted', () => {
|
|
const spy = jest.spyOn(ipcRenderer, onEventLabel);
|
|
shallow(React.createElement(ScreenSharingIndicator));
|
|
expect(spy).lastCalledWith(screenSharingIndicatorDataEventLabel, expect.any(Function));
|
|
});
|
|
|
|
it('should call `screen-sharing-indicator-data` when component is unmounted', () => {
|
|
const spy = jest.spyOn(ipcRenderer, removeListenerEventLabel);
|
|
shallow(React.createElement(ScreenSharingIndicator)).unmount();
|
|
expect(spy).toBeCalledWith(screenSharingIndicatorDataEventLabel, expect.any(Function));
|
|
});
|
|
});
|
|
});
|