diff --git a/src/main.ts b/src/main.ts index 2e74d54..2555385 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,18 +1,15 @@ import { app, BrowserWindow } from 'electron'; import BrowserWindowConstructorOptions = Electron.BrowserWindowConstructorOptions; -import minimist from 'minimist'; import os from 'os'; import path from 'path'; import packageJson from '../package.json'; import './main/controllers/api'; +import { isDev } from './main/services/dev'; import * as session from './main/services/session'; export let mainWindow: Electron.BrowserWindow; -export let appPath = path.resolve( - app.getPath('userData'), - `${packageJson.version}${minimist(process.argv).dev ? '-dev' : ''}` -); +export let appPath = path.resolve(app.getPath('userData'), `${packageJson.version}${isDev() ? '-dev' : ''}`); async function createWindow(): Promise { session.setHeaders(); @@ -47,7 +44,9 @@ async function createWindow(): Promise { await mainWindow.loadFile('frontend/index.html'); // Open the DevTools. - mainWindow.webContents.openDevTools(); + if (isDev()) { + mainWindow.webContents.openDevTools(); + } // Emitted when the window is closed. mainWindow.on('closed', () => { diff --git a/src/main/services/dev.ts b/src/main/services/dev.ts new file mode 100644 index 0000000..cae37bf --- /dev/null +++ b/src/main/services/dev.ts @@ -0,0 +1,5 @@ +import minimist from 'minimist'; + +export function isDev(): boolean { + return !!minimist(process.argv).dev; +} diff --git a/tests/main/services/dev.spec.ts b/tests/main/services/dev.spec.ts new file mode 100644 index 0000000..1324e2c --- /dev/null +++ b/tests/main/services/dev.spec.ts @@ -0,0 +1,23 @@ +import rewiremock from 'rewiremock'; +import '../../../mocks/electron'; + +import { expect } from 'chai'; +import 'mocha'; +import { isDev } from '../../../src/main/services/dev'; + +describe('Development Mode Service', () => { + before(() => { + rewiremock.enable(); + }); + + after(() => { + rewiremock.disable(); + }); + + it('correctly identifies the development process argument', async () => { + process.argv.push('--dev'); + expect(isDev()).to.be.true; + process.argv = process.argv.filter((value) => value !== '--dev'); + expect(isDev()).to.be.false; + }); +});