Parallel: throw an error if fit/fdescribe are used in parallel mode

This commit is contained in:
Steve Gravrock
2022-10-11 19:35:59 -07:00
parent 1e7b68236b
commit 89e0b35c53
3 changed files with 32 additions and 0 deletions

View File

@@ -1806,6 +1806,12 @@ getJasmineRequireObj().Env = function(j$) {
}
}
function ensureNonParallel(method) {
if (parallelLodingState) {
throw new Error(`'${method}' is not available in parallel mode`);
}
}
function ensureNonParallelOrInHelperOrInDescribe(method) {
if (parallelLodingState === 'specs' && !suiteBuilder.inDescribe()) {
throw new Error(
@@ -1828,6 +1834,7 @@ getJasmineRequireObj().Env = function(j$) {
this.fdescribe = function(description, definitionFn) {
ensureIsNotNested('fdescribe');
ensureNonParallel('fdescribe');
return suiteBuilder.fdescribe(description, definitionFn).metadata;
};
@@ -1865,6 +1872,7 @@ getJasmineRequireObj().Env = function(j$) {
this.fit = function(description, fn, timeout) {
ensureIsNotNested('fit');
ensureNonParallel('fit');
return suiteBuilder.fit(description, fn, timeout).metadata;
};

View File

@@ -251,6 +251,15 @@ describe('Env', function() {
describe('#fdescribe', function() {
behavesLikeDescribe('fdescribe');
it('throws an error in parallel mode', function() {
env.setParallelLoadingState('specs');
expect(function() {
env.fdescribe('a suite', function() {
env.it('a spec');
});
}).toThrowError("'fdescribe' is not available in parallel mode");
});
});
describe('xdescribe', function() {
@@ -372,6 +381,13 @@ describe('Env', function() {
env.fit('huge timeout', function() {}, 2147483648);
}).toThrowError('Timeout value cannot be greater than 2147483647');
});
it('throws an error in parallel mode', function() {
env.setParallelLoadingState('specs');
expect(function() {
env.fit('a spec', function() {});
}).toThrowError("'fit' is not available in parallel mode");
});
});
describe('#beforeEach', function() {

View File

@@ -664,6 +664,12 @@ getJasmineRequireObj().Env = function(j$) {
}
}
function ensureNonParallel(method) {
if (parallelLodingState) {
throw new Error(`'${method}' is not available in parallel mode`);
}
}
function ensureNonParallelOrInHelperOrInDescribe(method) {
if (parallelLodingState === 'specs' && !suiteBuilder.inDescribe()) {
throw new Error(
@@ -686,6 +692,7 @@ getJasmineRequireObj().Env = function(j$) {
this.fdescribe = function(description, definitionFn) {
ensureIsNotNested('fdescribe');
ensureNonParallel('fdescribe');
return suiteBuilder.fdescribe(description, definitionFn).metadata;
};
@@ -723,6 +730,7 @@ getJasmineRequireObj().Env = function(j$) {
this.fit = function(description, fn, timeout) {
ensureIsNotNested('fit');
ensureNonParallel('fit');
return suiteBuilder.fit(description, fn, timeout).metadata;
};