1 import * as electronModule from 'electron';
3 import { parseInstallArguments } from '@proton/shared/lib/squirrel/squirrel';
5 describe('squirrel', () => {
7 spyOnAllFunctions(electronModule);
10 describe('install arguments', () => {
11 it('should correctly parse want desktop shortcut', () => {
13 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--desktop-shortcut', '0'])
17 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--desktop-shortcut', '1'])
21 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--desktop-shortcut=0'])
25 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--desktop-shortcut=1'])
29 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op']).wantDesktopShortcut
32 it('should correctly parse source', () => {
34 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op']).source
37 parseInstallArguments([
45 ).toBe('fromInstaller');
47 parseInstallArguments([
55 ).toBe('"fromInstaller"');
57 parseInstallArguments([
65 ).toBe("'fromInstaller'");
67 parseInstallArguments([
78 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--source=fromInstaller'])
80 ).toBe('fromInstaller');
82 it('should correctly parse is silent', () => {
83 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '-s', '--no-op']).isSilent).toBe(true);
84 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op']).isSilent).toBe(true);
85 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '1', '--no-op']).isSilent).toBe(
88 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--silent=1', '--no-op']).isSilent).toBe(true);
89 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '0', '--no-op']).isSilent).toBe(
92 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--silent=0', '--no-op']).isSilent).toBe(
95 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--no-op']).isSilent).toBe(false);
97 it('should correctly parse is auto launch', () => {
99 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--auto-launch'])
103 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--auto-launch', '1'])
107 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--auto-launch=1'])
111 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op', '--source=fromInstaller'])
115 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '--no-op']).isAutoLaunch).toBe(
119 parseInstallArguments(['--squirrel-install', '0.0.1', '--silent', '1', '--no-op']).isAutoLaunch
121 expect(parseInstallArguments(['--squirrel-install', '0.0.1', '--silent=1', '--no-op']).isAutoLaunch).toBe(