diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index 85be2107..54508b2f 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -1691,6 +1691,10 @@ getJasmineRequireObj().Env = function(j$) { * @see custom_reporter */ this.addReporter = function(reporterToAdd) { + if (parallelLoadingState) { + throw new Error('Reporters cannot be added via Env in parallel mode'); + } + reporter.addReporter(reporterToAdd); }; @@ -1713,6 +1717,10 @@ getJasmineRequireObj().Env = function(j$) { * @function */ this.clearReporters = function() { + if (parallelLoadingState) { + throw new Error('Reporters cannot be removed via Env in parallel mode'); + } + reporter.clearReporters(); }; diff --git a/spec/core/EnvSpec.js b/spec/core/EnvSpec.js index 0b650158..8243f452 100644 --- a/spec/core/EnvSpec.js +++ b/spec/core/EnvSpec.js @@ -786,4 +786,32 @@ describe('Env', function() { ).toBeRejectedWithError(msg); }); }); + + describe('#addReporter', function() { + it('throws when called in parallel mode', function() { + env.setParallelLoadingState('helpers'); + expect(function() { + env.addReporter({}); + }).toThrowError('Reporters cannot be added via Env in parallel mode'); + + env.setParallelLoadingState('specs'); + expect(function() { + env.addReporter({}); + }).toThrowError('Reporters cannot be added via Env in parallel mode'); + }); + }); + + describe('#clearReporters', function() { + it('throws when called in parallel mode', function() { + env.setParallelLoadingState('helpers'); + expect(function() { + env.clearReporters(); + }).toThrowError('Reporters cannot be removed via Env in parallel mode'); + + env.setParallelLoadingState('specs'); + expect(function() { + env.clearReporters(); + }).toThrowError('Reporters cannot be removed via Env in parallel mode'); + }); + }); }); diff --git a/src/core/Env.js b/src/core/Env.js index f7721435..a2dd481d 100644 --- a/src/core/Env.js +++ b/src/core/Env.js @@ -549,6 +549,10 @@ getJasmineRequireObj().Env = function(j$) { * @see custom_reporter */ this.addReporter = function(reporterToAdd) { + if (parallelLoadingState) { + throw new Error('Reporters cannot be added via Env in parallel mode'); + } + reporter.addReporter(reporterToAdd); }; @@ -571,6 +575,10 @@ getJasmineRequireObj().Env = function(j$) { * @function */ this.clearReporters = function() { + if (parallelLoadingState) { + throw new Error('Reporters cannot be removed via Env in parallel mode'); + } + reporter.clearReporters(); };