import { autoLaunchInstance } from '../src/app/auto-launch-controller'; import { config } from '../src/app/config-handler'; import { app } from './__mocks__/electron'; jest.mock('electron-log'); jest.mock('../src/app/config-handler', () => { return { CloudConfigDataTypes: { NOT_SET: 'NOT_SET', ENABLED: 'ENABLED', DISABLED: 'DISABLED', }, config: { getGlobalConfigFields: jest.fn(() => ''), getConfigFields: jest.fn(() => { return { launchOnStartup: 'ENABLED', }; }), updateUserConfig: jest.fn(), }, }; }); describe('auto launch controller', async () => { beforeEach(() => { jest.spyOn(config, 'getConfigFields').mockImplementation(() => { return { launchOnStartup: 'ENABLED', }; }); jest.clearAllMocks(); }); it('should call `enableAutoLaunch` correctly', async () => { const spyFn = 'setLoginItemSettings'; const spy = jest.spyOn(app, spyFn); await autoLaunchInstance.enableAutoLaunch(); expect(spy).toBeCalled(); }); it('should call `disableAutoLaunch` correctly', async () => { const spyFn = 'setLoginItemSettings'; const spy = jest.spyOn(app, spyFn); await autoLaunchInstance.disableAutoLaunch(); expect(spy).toBeCalled(); }); it('should call `isAutoLaunchEnabled` correctly', async () => { const spyFn = 'getLoginItemSettings'; const spy = jest.spyOn(app, spyFn); await autoLaunchInstance.isAutoLaunchEnabled(); expect(spy).toBeCalled(); }); it('should enable AutoLaunch when `handleAutoLaunch` is called', async () => { const spyFn = 'enableAutoLaunch'; const spy = jest.spyOn(autoLaunchInstance, spyFn); jest .spyOn(autoLaunchInstance, 'isAutoLaunchEnabled') .mockImplementation(() => false); await autoLaunchInstance.handleAutoLaunch(); expect(spy).toBeCalled(); }); it('should disable AutoLaunch when `handleAutoLaunch` is called', async () => { jest.spyOn(config, 'getConfigFields').mockImplementation(() => { return { launchOnStartup: 'DISABLED', }; }); const spyFn = 'disableAutoLaunch'; const spy = jest.spyOn(autoLaunchInstance, spyFn); jest .spyOn(autoLaunchInstance, 'isAutoLaunchEnabled') .mockImplementation(() => ({ openAtLogin: true })); await autoLaunchInstance.handleAutoLaunch(); expect(spy).toBeCalled(); }); });