Parallel: Disallow calls to Env#config from spec and helper files
Such configuration changes only affect one worker, which is almost certainly not the intent.
This commit is contained in:
@@ -1309,6 +1309,12 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
* @function
|
* @function
|
||||||
*/
|
*/
|
||||||
this.configure = function(configuration) {
|
this.configure = function(configuration) {
|
||||||
|
if (parallelLoadingState) {
|
||||||
|
throw new Error(
|
||||||
|
'Jasmine cannot be configured via Env in parallel mode'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const booleanProps = [
|
const booleanProps = [
|
||||||
'random',
|
'random',
|
||||||
'failSpecWithNoExpectations',
|
'failSpecWithNoExpectations',
|
||||||
|
|||||||
@@ -758,16 +758,16 @@ describe('Env', function() {
|
|||||||
|
|
||||||
describe('In parallel mode', function() {
|
describe('In parallel mode', function() {
|
||||||
it('rejects if random is set to false', async function() {
|
it('rejects if random is set to false', async function() {
|
||||||
env.setParallelLoadingState('specs');
|
|
||||||
env.configure({ random: false });
|
env.configure({ random: false });
|
||||||
|
env.setParallelLoadingState('specs');
|
||||||
await expectAsync(env.execute()).toBeRejectedWithError(
|
await expectAsync(env.execute()).toBeRejectedWithError(
|
||||||
'Randomization cannot be disabled in parallel mode'
|
'Randomization cannot be disabled in parallel mode'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('rejects if seed is set', async function() {
|
it('rejects if seed is set', async function() {
|
||||||
env.setParallelLoadingState('specs');
|
|
||||||
env.configure({ seed: 1234 });
|
env.configure({ seed: 1234 });
|
||||||
|
env.setParallelLoadingState('specs');
|
||||||
await expectAsync(env.execute()).toBeRejectedWithError(
|
await expectAsync(env.execute()).toBeRejectedWithError(
|
||||||
'Random seed cannot be set in parallel mode'
|
'Random seed cannot be set in parallel mode'
|
||||||
);
|
);
|
||||||
@@ -817,4 +817,18 @@ describe('Env', function() {
|
|||||||
}).toThrowError('Reporters cannot be removed via Env in parallel mode');
|
}).toThrowError('Reporters cannot be removed via Env in parallel mode');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#configure', function() {
|
||||||
|
it('throws when called in parallel mode', function() {
|
||||||
|
env.setParallelLoadingState('helpers');
|
||||||
|
expect(function() {
|
||||||
|
env.configure({});
|
||||||
|
}).toThrowError('Jasmine cannot be configured via Env in parallel mode');
|
||||||
|
|
||||||
|
env.setParallelLoadingState('specs');
|
||||||
|
expect(function() {
|
||||||
|
env.configure({});
|
||||||
|
}).toThrowError('Jasmine cannot be configured via Env in parallel mode');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -174,6 +174,12 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
* @function
|
* @function
|
||||||
*/
|
*/
|
||||||
this.configure = function(configuration) {
|
this.configure = function(configuration) {
|
||||||
|
if (parallelLoadingState) {
|
||||||
|
throw new Error(
|
||||||
|
'Jasmine cannot be configured via Env in parallel mode'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const booleanProps = [
|
const booleanProps = [
|
||||||
'random',
|
'random',
|
||||||
'failSpecWithNoExpectations',
|
'failSpecWithNoExpectations',
|
||||||
|
|||||||
Reference in New Issue
Block a user