jest-chain
jest-chain copied to clipboard
TypeError: result.message is not a function
Bug
packageversion: 1.1.15nodeversion: 14.17.3npm(oryarn) version: 7.19.1
What you did:
I wrote some invalid expectation: expect("string").toBe(12);
What happened (please provide anything you think will help):
TypeError: result.message is not a function
Hi,
From what I see in chain.js, the JestAssertionError constructor considers result.message as a function when its actually a string.
At some point, Jest must have changed and started calling the message factory to throw the message string instead.
So I replaced this line:
super(result.message());
For that one:
super(typeof result.message === "function" ? result.message() : result.message);
And it fixes the issue without introducing a breaking change.
Should I propose a PR ?
Looking forward to the fix too. Thank you!
Is it reasonable to expect this being added, or the PR to be accepted, any time soon considering the lack of activity in this project the last year or so? (Of course that could also be because no changes has been needed π)
Hi! π
Firstly, thanks for your work on this project! π
Today I used patch-package to patch [email protected] for the project I'm working on.
Here is the diff that solved my problem:
diff --git a/node_modules/jest-chain/dist/chain.js b/node_modules/jest-chain/dist/chain.js
index 4a7b85b..a6edb0f 100644
--- a/node_modules/jest-chain/dist/chain.js
+++ b/node_modules/jest-chain/dist/chain.js
@@ -7,7 +7,7 @@ exports.default = void 0;
class JestAssertionError extends Error {
constructor(result, callsite) {
- super(result.message());
+ super(typeof result.message === "function" ? result.message() : result.message);
this.matcherResult = result;
if (Error.captureStackTrace) {
This issue body was partially generated by patch-package.
Why hasn't this been addressed? The fix look good to me at first glance.
I updated a few package versions and got caught up with this error, I have to rollback to an older version (or use patch-package as shown above).
Had to go from :
"jest": "28.0.3",
"jest-expect-message": "1.0.2",
"jest-extended": "2.0.0",
"jest-runner-groups": "2.2.0",
"jest-to-match-shape-of": "1.3.2",
"ts-jest": "28.0.3",
To:
"jest": "26.6.3",
"jest-expect-message": "1.0.2",
"jest-extended": "0.11.5",
"jest-runner-groups": "2.0.1",
"jest-to-match-shape-of": "1.3.1",
"ts-jest": "26.5.6",
Which fixed the issue. (my tests are failing properly now)
Fixed in: https://www.npmjs.com/package/jest-chain/v/1.1.6