From ab3bd97a5244a05e0562aa22995428f0d74cd87e Mon Sep 17 00:00:00 2001 From: Yuya Ochiai Date: Tue, 17 Oct 2017 00:04:38 +0900 Subject: [PATCH] Fix an issue where the combination of deepmerge and webpack breaks tests --- src/common/deepmerge.js | 10 ++++++++++ src/common/settings.js | 5 +---- test/modules/environment.js | 1 - test/specs/settings_test.js | 8 ++++++++ 4 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 src/common/deepmerge.js diff --git a/src/common/deepmerge.js b/src/common/deepmerge.js new file mode 100644 index 00000000..4b5a649c --- /dev/null +++ b/src/common/deepmerge.js @@ -0,0 +1,10 @@ +const deepmerge = require('deepmerge'); + +function deepMergeProxy(x, y, options) { + if (process.env.TEST) { + return deepmerge(x, y, options); + } + return deepmerge.default(x, y, options); // due to webpack conversion +} + +module.exports = deepMergeProxy; diff --git a/src/common/settings.js b/src/common/settings.js index 67878da5..b0ec9116 100644 --- a/src/common/settings.js +++ b/src/common/settings.js @@ -3,10 +3,7 @@ const fs = require('fs'); const path = require('path'); -let deepmerge = require('deepmerge').default; -if (process.env.TEST) { - deepmerge = require('deepmerge'); // eslint-disable-line -} +const deepmerge = require('./deepmerge'); const settingsVersion = 1; const baseConfig = require('./config/base.json'); diff --git a/test/modules/environment.js b/test/modules/environment.js index 4fd19f02..ffe8abc7 100644 --- a/test/modules/environment.js +++ b/test/modules/environment.js @@ -1,5 +1,4 @@ 'use strict'; -process.env.TEST = 'test'; const chai = require('chai'); chai.should(); diff --git a/test/specs/settings_test.js b/test/specs/settings_test.js index 8db72848..071fcc99 100644 --- a/test/specs/settings_test.js +++ b/test/specs/settings_test.js @@ -2,6 +2,14 @@ const settings = require('../../src/common/settings'); const deepmerge = require('deepmerge'); describe('common/settings.js', () => { + before(() => { + process.env.TEST = 1; + }); + + after(() => { + delete process.env.TEST; + }); + it('should upgrade v0 config file', () => { const v0Config = { url: 'https://example.com/team'