From a1591da25d76f7512c2fe8c61400cd22104f1e1b Mon Sep 17 00:00:00 2001 From: Andrei D Date: Sun, 22 Dec 2024 17:43:47 +0200 Subject: [PATCH] improved error msg on toBeRehectedWithError and all other built-in async matchers --- spec/core/matchers/async/toBePendingSpec.js | 4 +++- spec/core/matchers/async/toBeRejectedSpec.js | 4 +++- spec/core/matchers/async/toBeRejectedWithErrorSpec.js | 2 +- spec/core/matchers/async/toBeRejectedWithSpec.js | 2 +- spec/core/matchers/async/toBeResolvedSpec.js | 4 +++- spec/core/matchers/async/toBeResolvedToSpec.js | 2 +- src/core/matchers/async/toBePending.js | 4 +++- src/core/matchers/async/toBeRejected.js | 4 +++- src/core/matchers/async/toBeRejectedWith.js | 2 +- src/core/matchers/async/toBeRejectedWithError.js | 2 +- src/core/matchers/async/toBeResolved.js | 4 +++- src/core/matchers/async/toBeResolvedTo.js | 4 +++- 12 files changed, 26 insertions(+), 12 deletions(-) diff --git a/spec/core/matchers/async/toBePendingSpec.js b/spec/core/matchers/async/toBePendingSpec.js index 22a0f6ce..c01df430 100644 --- a/spec/core/matchers/async/toBePendingSpec.js +++ b/spec/core/matchers/async/toBePendingSpec.js @@ -38,6 +38,8 @@ describe('toBePending', function() { return matcher.compare(actual); } - expect(f).toThrowError('Expected toBePending to be called on a promise.'); + expect(f).toThrowError( + `Expected toBePending to be called on a promise but was on a ${typeof actual}.` + ); }); }); diff --git a/spec/core/matchers/async/toBeRejectedSpec.js b/spec/core/matchers/async/toBeRejectedSpec.js index 56b827ab..687544f7 100644 --- a/spec/core/matchers/async/toBeRejectedSpec.js +++ b/spec/core/matchers/async/toBeRejectedSpec.js @@ -28,6 +28,8 @@ describe('toBeRejected', function() { return matcher.compare(actual); } - expect(f).toThrowError('Expected toBeRejected to be called on a promise.'); + expect(f).toThrowError( + `Expected toBeRejected to be called on a promise but was on a ${typeof actual}.` + ); }); }); diff --git a/spec/core/matchers/async/toBeRejectedWithErrorSpec.js b/spec/core/matchers/async/toBeRejectedWithErrorSpec.js index db505ea6..1fcb9c2a 100644 --- a/spec/core/matchers/async/toBeRejectedWithErrorSpec.js +++ b/spec/core/matchers/async/toBeRejectedWithErrorSpec.js @@ -232,7 +232,7 @@ describe('#toBeRejectedWithError', function() { } expect(f).toThrowError( - 'Expected toBeRejectedWithError to be called on a promise.' + `Expected toBeRejectedWithError to be called on a promise but was on a ${typeof actual}.` ); }); }); diff --git a/spec/core/matchers/async/toBeRejectedWithSpec.js b/spec/core/matchers/async/toBeRejectedWithSpec.js index f2657d3c..1b9421e7 100644 --- a/spec/core/matchers/async/toBeRejectedWithSpec.js +++ b/spec/core/matchers/async/toBeRejectedWithSpec.js @@ -83,7 +83,7 @@ describe('#toBeRejectedWith', function() { } expect(f).toThrowError( - 'Expected toBeRejectedWith to be called on a promise.' + `Expected toBeRejectedWith to be called on a promise but was on a ${typeof actual}.` ); }); }); diff --git a/spec/core/matchers/async/toBeResolvedSpec.js b/spec/core/matchers/async/toBeResolvedSpec.js index e70b4df2..d97d2a3f 100644 --- a/spec/core/matchers/async/toBeResolvedSpec.js +++ b/spec/core/matchers/async/toBeResolvedSpec.js @@ -35,6 +35,8 @@ describe('toBeResolved', function() { return matcher.compare(actual); } - expect(f).toThrowError('Expected toBeResolved to be called on a promise.'); + expect(f).toThrowError( + `Expected toBeResolved to be called on a promise but was on a ${typeof actual}.` + ); }); }); diff --git a/spec/core/matchers/async/toBeResolvedToSpec.js b/spec/core/matchers/async/toBeResolvedToSpec.js index 5c81441d..7310810d 100644 --- a/spec/core/matchers/async/toBeResolvedToSpec.js +++ b/spec/core/matchers/async/toBeResolvedToSpec.js @@ -93,7 +93,7 @@ describe('#toBeResolvedTo', function() { } expect(f).toThrowError( - 'Expected toBeResolvedTo to be called on a promise.' + `Expected toBeResolvedTo to be called on a promise but was on a ${typeof actual}.` ); }); }); diff --git a/src/core/matchers/async/toBePending.js b/src/core/matchers/async/toBePending.js index 815bb74f..23ad8d47 100644 --- a/src/core/matchers/async/toBePending.js +++ b/src/core/matchers/async/toBePending.js @@ -12,7 +12,9 @@ getJasmineRequireObj().toBePending = function(j$) { return { compare: function(actual) { if (!j$.isPromiseLike(actual)) { - throw new Error('Expected toBePending to be called on a promise.'); + throw new Error( + `Expected toBePending to be called on a promise but was on a ${typeof actual}.` + ); } const want = {}; return Promise.race([actual, Promise.resolve(want)]).then( diff --git a/src/core/matchers/async/toBeRejected.js b/src/core/matchers/async/toBeRejected.js index d75fa34f..31d025c0 100644 --- a/src/core/matchers/async/toBeRejected.js +++ b/src/core/matchers/async/toBeRejected.js @@ -14,7 +14,9 @@ getJasmineRequireObj().toBeRejected = function(j$) { return { compare: function(actual) { if (!j$.isPromiseLike(actual)) { - throw new Error('Expected toBeRejected to be called on a promise.'); + throw new Error( + `Expected toBeRejected to be called on a promise but was on a ${typeof actual}.` + ); } return actual.then( function() { diff --git a/src/core/matchers/async/toBeRejectedWith.js b/src/core/matchers/async/toBeRejectedWith.js index 7436dbc7..b114a13c 100644 --- a/src/core/matchers/async/toBeRejectedWith.js +++ b/src/core/matchers/async/toBeRejectedWith.js @@ -16,7 +16,7 @@ getJasmineRequireObj().toBeRejectedWith = function(j$) { compare: function(actualPromise, expectedValue) { if (!j$.isPromiseLike(actualPromise)) { throw new Error( - 'Expected toBeRejectedWith to be called on a promise.' + `Expected toBeRejectedWith to be called on a promise but was on a ${typeof actualPromise}.` ); } diff --git a/src/core/matchers/async/toBeRejectedWithError.js b/src/core/matchers/async/toBeRejectedWithError.js index 4a843d2f..0bb3b58a 100644 --- a/src/core/matchers/async/toBeRejectedWithError.js +++ b/src/core/matchers/async/toBeRejectedWithError.js @@ -19,7 +19,7 @@ getJasmineRequireObj().toBeRejectedWithError = function(j$) { compare: function(actualPromise, arg1, arg2) { if (!j$.isPromiseLike(actualPromise)) { throw new Error( - 'Expected toBeRejectedWithError to be called on a promise.' + `Expected toBeRejectedWithError to be called on a promise but was on a ${typeof actualPromise}.` ); } diff --git a/src/core/matchers/async/toBeResolved.js b/src/core/matchers/async/toBeResolved.js index 0ef192be..4badc198 100644 --- a/src/core/matchers/async/toBeResolved.js +++ b/src/core/matchers/async/toBeResolved.js @@ -14,7 +14,9 @@ getJasmineRequireObj().toBeResolved = function(j$) { return { compare: function(actual) { if (!j$.isPromiseLike(actual)) { - throw new Error('Expected toBeResolved to be called on a promise.'); + throw new Error( + `Expected toBeResolved to be called on a promise but was on a ${typeof actual}.` + ); } return actual.then( diff --git a/src/core/matchers/async/toBeResolvedTo.js b/src/core/matchers/async/toBeResolvedTo.js index 235c3a22..acb12551 100644 --- a/src/core/matchers/async/toBeResolvedTo.js +++ b/src/core/matchers/async/toBeResolvedTo.js @@ -15,7 +15,9 @@ getJasmineRequireObj().toBeResolvedTo = function(j$) { return { compare: function(actualPromise, expectedValue) { if (!j$.isPromiseLike(actualPromise)) { - throw new Error('Expected toBeResolvedTo to be called on a promise.'); + throw new Error( + `Expected toBeResolvedTo to be called on a promise but was on a ${typeof actualPromise}.` + ); } function prefix(passed) {