Breaking change: Made Env#execute async

Errors related to invalid spec order are now reported via promise
rejection rather than synchronous throw.
This commit is contained in:
Steve Gravrock
2022-08-21 16:40:03 -07:00
parent 0bfbda720d
commit 0690500a0d
4 changed files with 16 additions and 22 deletions

View File

@@ -509,15 +509,17 @@ getJasmineRequireObj().Env = function(j$) {
* {@link JasmineDoneInfo|overall result} that's passed to a reporter's
* `jasmineDone` method, even if the suite did not pass. To determine
* whether the suite passed, check the value that the promise resolves to
* or use a {@link Reporter}.
* or use a {@link Reporter}. The promise will be rejected in the case of
* certain serious errors that prevent execution from starting.
*
* @name Env#execute
* @since 2.0.0
* @function
* @async
* @param {(string[])=} runablesToRun IDs of suites and/or specs to run
* @return {Promise<JasmineDoneInfo>}
*/
this.execute = function(runablesToRun) {
this.execute = async function(runablesToRun) {
installGlobalErrors();
return runner.execute(runablesToRun);
};

View File

@@ -26,11 +26,7 @@ getJasmineRequireObj().Runner = function(j$) {
];
}
// Although execute returns a promise, it isn't async for backwards
// compatibility: The "Invalid order" exception needs to be propagated
// synchronously from Env#execute.
// TODO: make this and Env#execute async in the next major release
execute(runablesToRun) {
async execute(runablesToRun) {
if (this.executedBefore_) {
this.topSuite_.reset();
}