diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index c32bccf8..b518aa8a 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -1354,7 +1354,7 @@ getJasmineRequireObj().Env = function(j$) { '2. Was done() invoked before an async operation completed?\n' + '3. Did an expectation follow a call to done()?'; - topSuite.result.failedExpectations.push(delayedExpectationResult); + topSuite.addExpectationResult(false, delayedExpectationResult); } function routeLateFailure(expectationResult) { @@ -2527,7 +2527,8 @@ getJasmineRequireObj().buildExpectationResult = function(j$) { matcherName: options.matcherName, message: message(), stack: options.omitStackTrace ? '' : stack(), - passed: options.passed + passed: options.passed, + globalErrorType: options.globalErrorType }; if (!result.passed) { @@ -8620,7 +8621,7 @@ getJasmineRequireObj().ReportDispatcher = function(j$) { return; } - const thisEvent = j$.util.clone(event); + const thisEvent = structuredClone(event); if (fn.length <= 1) { fns.push({ fn: function() { diff --git a/spec/core/SpecSpec.js b/spec/core/SpecSpec.js index 664cc092..88f55543 100644 --- a/spec/core/SpecSpec.js +++ b/spec/core/SpecSpec.js @@ -337,7 +337,8 @@ describe('Spec', function() { message: 'foo thrown', matcherName: '', passed: false, - stack: null + stack: null, + globalErrorType: undefined } ]); }); diff --git a/spec/core/integration/EnvSpec.js b/spec/core/integration/EnvSpec.js index 9a39db2e..a62731a3 100644 --- a/spec/core/integration/EnvSpec.js +++ b/spec/core/integration/EnvSpec.js @@ -1674,7 +1674,13 @@ describe('Env integration', function() { status: 'passed', parentSuiteId: suiteFullNameToId['A Suite'], passedExpectations: [ - { matcherName: 'toBe', message: 'Passed.', stack: '', passed: true } + { + matcherName: 'toBe', + message: 'Passed.', + stack: '', + passed: true, + globalErrorType: undefined + } ], duration: jasmine.any(Number) }); @@ -3145,7 +3151,7 @@ describe('Env integration', function() { const result = jasmineDone.calls.argsFor(0)[0]; expect(result.failedExpectations).toEqual([ - jasmine.objectContaining({ + { passed: false, globalErrorType: 'lateExpectation', message: @@ -3154,8 +3160,9 @@ describe('Env integration', function() { '1. Did you forget to return or await the result of expectAsync?\n' + '2. Was done() invoked before an async operation completed?\n' + '3. Did an expectation follow a call to done()?', - matcherName: 'toBeResolved' - }) + matcherName: 'toBeResolved', + stack: jasmine.any(String) + } ]); }); diff --git a/src/core/Env.js b/src/core/Env.js index ae38aca1..e0ed30f3 100644 --- a/src/core/Env.js +++ b/src/core/Env.js @@ -228,7 +228,7 @@ getJasmineRequireObj().Env = function(j$) { '2. Was done() invoked before an async operation completed?\n' + '3. Did an expectation follow a call to done()?'; - topSuite.result.failedExpectations.push(delayedExpectationResult); + topSuite.addExpectationResult(false, delayedExpectationResult); } function routeLateFailure(expectationResult) { diff --git a/src/core/buildExpectationResult.js b/src/core/buildExpectationResult.js index 12f17b77..513741af 100644 --- a/src/core/buildExpectationResult.js +++ b/src/core/buildExpectationResult.js @@ -19,7 +19,8 @@ getJasmineRequireObj().buildExpectationResult = function(j$) { matcherName: options.matcherName, message: message(), stack: options.omitStackTrace ? '' : stack(), - passed: options.passed + passed: options.passed, + globalErrorType: options.globalErrorType }; if (!result.passed) {