Changes to have settings tests pass. test/specs/settings_test.js

This commit is contained in:
David Meza
2017-09-28 23:26:12 -05:00
parent 0efe676a8e
commit 76ced43a68
6 changed files with 22 additions and 6 deletions

View File

@@ -35,6 +35,7 @@
"lint:js": "eslint --ext .js --ext .jsx ." "lint:js": "eslint --ext .js --ext .jsx ."
}, },
"devDependencies": { "devDependencies": {
"deepmerge": "^1.5.2",
"7zip-bin": "^2.0.4", "7zip-bin": "^2.0.4",
"babel-core": "^6.24.1", "babel-core": "^6.24.1",
"babel-eslint": "^7.2.3", "babel-eslint": "^7.2.3",

View File

@@ -4,7 +4,7 @@
"showTrayIcon": false, "showTrayIcon": false,
"trayIconTheme": "light", "trayIconTheme": "light",
"minimizeToTray": false, "minimizeToTray": false,
"version": "1", "version": 1,
"notifications": { "notifications": {
"flashWindow": 0 "flashWindow": 0
}, },
@@ -17,7 +17,7 @@
"showTrayIcon": false, "showTrayIcon": false,
"trayIconTheme": "light", "trayIconTheme": "light",
"minimizeToTray": false, "minimizeToTray": false,
"version": "1", "version": 1,
"notifications": { "notifications": {
"flashWindow": 0 "flashWindow": 0
}, },

View File

@@ -1,7 +1,10 @@
'use strict'; 'use strict';
const fs = require('fs'); const fs = require('fs');
const deepmerge = require('deepmerge').default; let deepmerge = require('deepmerge').default;
if (process.env.TEST) {
deepmerge = require('deepmerge'); // eslint-disable-line
}
const settingsVersion = 1; const settingsVersion = 1;
const baseConfig = require('./config/base.json'); const baseConfig = require('./config/base.json');
@@ -32,7 +35,7 @@ function loadDefault(version, spellCheckerLocale) {
} }
function upgradeV0toV1(configV0) { function upgradeV0toV1(configV0) {
var config = loadDefault('1'); var config = loadDefault(1);
config.teams.push({ config.teams.push({
name: 'Primary team', name: 'Primary team',
url: configV0.url url: configV0.url
@@ -41,7 +44,7 @@ function upgradeV0toV1(configV0) {
} }
function upgrade(config, newAppVersion) { function upgrade(config, newAppVersion) {
var configVersion = config.version ? config.version : '1'; var configVersion = config.version ? config.version : 0;
if (newAppVersion) { if (newAppVersion) {
config.lastMattermostVersion = newAppVersion; config.lastMattermostVersion = newAppVersion;
} }

View File

@@ -12,7 +12,7 @@
"auto-launch": "^5.0.1", "auto-launch": "^5.0.1",
"bootstrap": "^3.3.7", "bootstrap": "^3.3.7",
"create-react-class": "^15.5.3", "create-react-class": "^15.5.3",
"deepmerge": "^1.5.1", "deepmerge": "^1.5.2",
"electron-context-menu": "^0.9.0", "electron-context-menu": "^0.9.0",
"electron-devtools-installer": "^2.2.0", "electron-devtools-installer": "^2.2.0",
"electron-is-dev": "^0.1.2", "electron-is-dev": "^0.1.2",

View File

@@ -1,4 +1,5 @@
'use strict'; 'use strict';
process.env.TEST = 'test';
const chai = require('chai'); const chai = require('chai');
chai.should(); chai.should();

View File

@@ -1,4 +1,5 @@
const settings = require('../../src/common/settings'); const settings = require('../../src/common/settings');
const deepmerge = require('deepmerge');
describe('common/settings.js', () => { describe('common/settings.js', () => {
it('should upgrade v0 config file', () => { it('should upgrade v0 config file', () => {
@@ -10,4 +11,14 @@ describe('common/settings.js', () => {
config.teams[0].url.should.equal(v0Config.url); config.teams[0].url.should.equal(v0Config.url);
config.version.should.equal(settings.version); config.version.should.equal(settings.version);
}); });
it('should loadDefault config for version 1', () => {
const baseConfig = require('../../src/common/config/base.json');
const overrideConfig = require('../../src/common/config/override.json');
const expectedDefaults = deepmerge(
baseConfig[1], overrideConfig[1] || {}, {clone: true, arrayMerge: settings.deepMergeArray}
);
const defaultConfig = settings.loadDefault();
defaultConfig.should.eql(expectedDefaults);
});
}); });