fix(env): Throw if nested describe has no children.
Users would like an error if it() is acciddently moved within a before/afterEach/All function. The it() function calls ensureIsNotNested to report such an error. But if the user has no other it() functions in the Suite, it() and thus ensureIsNotNested() is never called. Here we check nested Suites for children; if none are found we throw.
This commit is contained in:
@@ -133,6 +133,12 @@ describe('Env', function() {
|
|||||||
'describe expects a function argument; received [object Function]'
|
'describe expects a function argument; received [object Function]'
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('throws an error when it has no children', function() {
|
||||||
|
expect(function() {
|
||||||
|
env.describe('done method', function() {});
|
||||||
|
}).toThrowError('describe with no children (describe() or it())');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#it', function() {
|
describe('#it', function() {
|
||||||
|
|||||||
@@ -30,7 +30,9 @@ describe('Exceptions:', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should handle exceptions thrown directly in top-level describe blocks and continue', function(done) {
|
it('should handle exceptions thrown directly in top-level describe blocks and continue', function(done) {
|
||||||
var secondDescribe = jasmine.createSpy('second describe');
|
var secondDescribe = jasmine.createSpy('second describe').and.callFake(function() {
|
||||||
|
env.it('is a test', function() {});
|
||||||
|
});
|
||||||
env.describe('a suite that throws an exception', function() {
|
env.describe('a suite that throws an exception', function() {
|
||||||
env.it('is a test that should pass', function() {
|
env.it('is a test that should pass', function() {
|
||||||
this.expect(true).toEqual(true);
|
this.expect(true).toEqual(true);
|
||||||
|
|||||||
@@ -1881,6 +1881,7 @@ describe("Env integration", function() {
|
|||||||
} catch(e) {
|
} catch(e) {
|
||||||
exception = e;
|
exception = e;
|
||||||
}
|
}
|
||||||
|
env.it('has a test', () => {});
|
||||||
});
|
});
|
||||||
|
|
||||||
var assertions = function() {
|
var assertions = function() {
|
||||||
@@ -1904,6 +1905,7 @@ describe("Env integration", function() {
|
|||||||
} catch(e) {
|
} catch(e) {
|
||||||
exception = e;
|
exception = e;
|
||||||
}
|
}
|
||||||
|
env.it('has a test', () => {});
|
||||||
});
|
});
|
||||||
|
|
||||||
var assertions = function() {
|
var assertions = function() {
|
||||||
@@ -1927,6 +1929,7 @@ describe("Env integration", function() {
|
|||||||
} catch(e) {
|
} catch(e) {
|
||||||
exception = e;
|
exception = e;
|
||||||
}
|
}
|
||||||
|
env.it('has a test', () => {});
|
||||||
});
|
});
|
||||||
|
|
||||||
var assertions = function() {
|
var assertions = function() {
|
||||||
|
|||||||
@@ -843,6 +843,9 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
suite.pend();
|
suite.pend();
|
||||||
}
|
}
|
||||||
addSpecsToSuite(suite, specDefinitions);
|
addSpecsToSuite(suite, specDefinitions);
|
||||||
|
if (suite.parentSuite && !suite.children.length) {
|
||||||
|
throw new Error('describe with no children (describe() or it())');
|
||||||
|
}
|
||||||
return suite;
|
return suite;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user