Report exceptions thrown by a describe before any it calls

Previously, these were masked by the "describe with no children" error.
Now they're reported as suite level errors on an empty suite.
This commit is contained in:
Steve Gravrock
2022-09-17 13:23:36 -07:00
parent 44f331f43d
commit d4025999b7
3 changed files with 54 additions and 10 deletions

View File

@@ -32,11 +32,6 @@ getJasmineRequireObj().SuiteBuilder = function(j$) {
suite.exclude();
}
this.addSpecsToSuite_(suite, definitionFn);
if (suite.parentSuite && !suite.children.length) {
throw new Error(
`describe with no children (describe() or it()): ${suite.getFullName()}`
);
}
return suite;
}
@@ -183,11 +178,19 @@ getJasmineRequireObj().SuiteBuilder = function(j$) {
const parentSuite = this.currentDeclarationSuite_;
parentSuite.addChild(suite);
this.currentDeclarationSuite_ = suite;
let threw = false;
try {
definitionFn();
} catch (e) {
suite.handleException(e);
threw = true;
}
if (suite.parentSuite && !suite.children.length && !threw) {
throw new Error(
`describe with no children (describe() or it()): ${suite.getFullName()}`
);
}
this.currentDeclarationSuite_ = parentSuite;