feat: only open development tools in development mode (add new service to determine dev mode)

This commit is contained in:
Xymorot 2019-12-11 14:24:00 +01:00
parent f28e938a4d
commit 5f3da78721
3 changed files with 33 additions and 6 deletions

View File

@ -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<void> {
session.setHeaders();
@ -47,7 +44,9 @@ async function createWindow(): Promise<void> {
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', () => {

5
src/main/services/dev.ts Normal file
View File

@ -0,0 +1,5 @@
import minimist from 'minimist';
export function isDev(): boolean {
return !!minimist(process.argv).dev;
}

View File

@ -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;
});
});