diff --git a/lib/core/enhanceError.js b/lib/core/enhanceError.js index 02fbbd6..b6bc444 100644 --- a/lib/core/enhanceError.js +++ b/lib/core/enhanceError.js @@ -20,7 +20,7 @@ module.exports = function enhanceError(error, config, code, request, response) { error.response = response; error.isAxiosError = true; - error.toJSON = function() { + error.toJSON = function toJSON() { return { // Standard message: this.message, diff --git a/lib/core/mergeConfig.js b/lib/core/mergeConfig.js index 8e1ce61..827d6df 100644 --- a/lib/core/mergeConfig.js +++ b/lib/core/mergeConfig.js @@ -15,8 +15,8 @@ module.exports = function mergeConfig(config1, config2) { config2 = config2 || {}; var config = {}; - var valueFromConfig2Keys = ['url', 'method', 'params', 'data']; - var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy']; + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; var defaultToConfig2Keys = [ 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', diff --git a/test/specs/core/mergeConfig.spec.js b/test/specs/core/mergeConfig.spec.js index 2e043d5..6a92262 100644 --- a/test/specs/core/mergeConfig.spec.js +++ b/test/specs/core/mergeConfig.spec.js @@ -33,30 +33,32 @@ describe('core::mergeConfig', function() { it('should not inherit request options', function() { var localDefaults = { method: '__sample method__', - params: '__sample params__', data: { foo: true } }; var merged = mergeConfig(localDefaults, {}); expect(merged.method).toEqual(undefined); - expect(merged.params).toEqual(undefined); expect(merged.data).toEqual(undefined); }); - it('should merge auth, headers, proxy with defaults', function() { - expect(mergeConfig({ auth: undefined }, { auth: { user: 'foo', pass: 'test' } })).toEqual({ - auth: { user: 'foo', pass: 'test' } + ['auth', 'headers', 'params', 'proxy'].forEach(key => { + it(`should set new config for ${key} without default`, function() { + expect(mergeConfig({ [key]: undefined }, { [key]: { user: 'foo', pass: 'test' } })).toEqual({ + [key]: { user: 'foo', pass: 'test' } + }); }); - expect(mergeConfig({ auth: { user: 'foo', pass: 'test' } }, { auth: { pass: 'foobar' } })).toEqual({ - auth: { user: 'foo', pass: 'foobar' } - }); - }); - it('should overwrite auth, headers, proxy with a non-object value', function() { - expect(mergeConfig({ auth: { user: 'foo', pass: 'test' } }, { auth: false })).toEqual({ - auth: false + it(`should merge ${key} with defaults`, function() { + expect(mergeConfig({ [key]: { user: 'foo', pass: 'bar' } }, { [key]: { pass: 'test' } })).toEqual({ + [key]: { user: 'foo', pass: 'test' } + }); }); - expect(mergeConfig({ auth: { user: 'foo', pass: 'test' } }, { auth: null })).toEqual({ - auth: null + + it(`should overwrite default ${key} with a non-object value`, function() { + [false, null, 123].forEach(value => { + expect(mergeConfig({ [key]: { user: 'foo', pass: 'test' } }, { [key]: value })).toEqual({ + [key]: value + }); + }); }); });