diff --git a/src/server/config/config.js b/src/server/config/config.js index b5b89ec579184..5587794c74f8a 100644 --- a/src/server/config/config.js +++ b/src/server/config/config.js @@ -124,7 +124,10 @@ export class Config { }); if (results.error) { - throw results.error; + const error = new Error(results.error.message); + error.name = results.error.name; + error.stack = results.error.stack; + throw error; } this[vals] = results.value; diff --git a/src/server/config/config.test.js b/src/server/config/config.test.js index 1887548cf7275..3b64f943b85f6 100644 --- a/src/server/config/config.test.js +++ b/src/server/config/config.test.js @@ -174,7 +174,7 @@ describe('lib/config/config', function () { }); it('should thow an exception when setting a value with the wrong type', function (done) { - expect.assertions(2); + expect.assertions(4); const run = function () { config.set('test.enable', 'something'); @@ -184,7 +184,11 @@ describe('lib/config/config', function () { run(); } catch (err) { expect(err).toHaveProperty('name', 'ValidationError'); - expect(err.details[0].message).toBe('"enable" must be a boolean'); + expect(err).toHaveProperty('message', + 'child \"test\" fails because [child \"enable\" fails because [\"enable\" must be a boolean]]' + ); + expect(err).not.toHaveProperty('details'); + expect(err).not.toHaveProperty('_object'); } done();