diff --git a/lib/gui/app/models/settings.ts b/lib/gui/app/models/settings.ts index dd4e05da..2f3a62df 100644 --- a/lib/gui/app/models/settings.ts +++ b/lib/gui/app/models/settings.ts @@ -23,7 +23,8 @@ import * as localSettings from './local-settings'; const debug = _debug('etcher:models:settings'); -const DEFAULT_SETTINGS: _.Dictionary = { +// exported for tests +export const DEFAULT_SETTINGS: _.Dictionary = { unsafeMode: false, errorReporting: true, unmountOnSuccess: true, @@ -107,11 +108,3 @@ export function getAll() { debug('getAll'); return _.cloneDeep(settings); } - -/** - * @summary Get the default setting values - */ -export function getDefaults() { - debug('getDefaults'); - return _.cloneDeep(DEFAULT_SETTINGS); -} diff --git a/lib/gui/etcher.ts b/lib/gui/etcher.ts index c1493aaa..320b7681 100644 --- a/lib/gui/etcher.ts +++ b/lib/gui/etcher.ts @@ -28,7 +28,6 @@ import * as settings from './app/models/settings'; import * as analytics from './app/modules/analytics'; import { buildWindowMenu } from './menu'; -const config = settings.getDefaults(); const configUrl = settings.get('configUrl') || 'https://balena.io/etcher/static/config.json'; const updatablePackageTypes = ['appimage', 'nsis', 'dmg']; @@ -58,17 +57,18 @@ async function checkForUpdates(interval: number) { } function createMainWindow() { + const fullscreen = Boolean(settings.get('fullscreen')); const mainWindow = new electron.BrowserWindow({ - width: parseInt(config.width, 10) || 800, - height: parseInt(config.height, 10) || 480, - frame: !config.fullscreen, + width: parseInt(settings.get('width'), 10) || 800, + height: parseInt(settings.get('height'), 10) || 480, + frame: !fullscreen, useContentSize: false, show: false, resizable: false, maximizable: false, - fullscreen: Boolean(config.fullscreen), - fullscreenable: Boolean(config.fullscreen), - kiosk: Boolean(config.fullscreen), + fullscreen, + fullscreenable: fullscreen, + kiosk: fullscreen, autoHideMenuBar: true, titleBarStyle: 'hiddenInset', icon: path.join(__dirname, '..', '..', 'assets', 'icon.png'), @@ -149,8 +149,7 @@ electron.app.on('before-quit', () => { async function main(): Promise { try { - const localSettings = await settings.load(); - Object.assign(config, localSettings); + await settings.load(); } catch (error) { // TODO: What do if loading the config fails? console.error('Error loading settings:'); diff --git a/tests/gui/models/settings.spec.ts b/tests/gui/models/settings.spec.ts index aacd8eb4..c4ae31d8 100644 --- a/tests/gui/models/settings.spec.ts +++ b/tests/gui/models/settings.spec.ts @@ -36,7 +36,7 @@ describe('Browser: settings', function() { return settings.reset(); }); - const DEFAULT_SETTINGS = settings.getDefaults(); + const DEFAULT_SETTINGS = _.cloneDeep(settings.DEFAULT_SETTINGS); it('should be able to set and read values', function() { expect(settings.get('foo')).to.be.undefined;