Closed ubergeoff closed 2 years ago
I can confirm that by adding --detectOpenHandles
this will stop the test and display the correct error at hand (as described above).
Example: ng test some-lib --detectOpenHandles
However - this "extra" flag was not required before 10.3.0
@nrwl team: Please could you let us know your thoughts on this issue..? As this adds complications to the testing DX.
--detectOpenHandles
is usable when debugging; however, it implies --runInBand
and therefore has a huge performance impact.
@willydee - agreed - furthermore I'm just curious what the @nrwl team thinks about this "issue" - if they think it is a serious issue or not.
As I feel it is quite problematic - as testing is super critical to any organization.
Agree with @ubergeoff
We are experiencing this same issue for a while in our project with 100+ libraries and it is really doing our lives a bit more miserable. Not just the real error is hidden, but also the tests will continue running forever, what leads to many builds hanging until the Jenkins job times out and gets killed.
Hi there @FrozenPandaz - any thoughts on the above issues..?
I believe that's related to https://github.com/facebook/jest/issues/10577
@FrozenPandaz Related Jest issue has been closed, does it make sense to check and pin to the latest Jest? If so, can it be done for both v10 and v11?
If the Jest fix is part of the 26 release, you should just be able to update the workspace version of Jest and that's it.
If something related to Nx doesn't work (like not being to run nx test <project>
) then we would need to update the dependencies everywhere.
Just an update: I updated to latest Jest dependencies:
"jest": "26.6.3",
"ts-jest": "26.4.4",
"jest-preset-angular": "8.3.2",
The test runner process still does not stop. i.e. Process does not end when error is found.
Still getting:
(node:23408) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Object'
| property 'element' -> object with constructor 'Object'
| property 'componentProvider' -> object with constructor 'Object'
--- property 'parent' closes the circle
FYI if it is down to that same jest issue you linked to above (facebook/jest#10577) then it's worth noting that there has not been a single Jest release since the fix for that was merged - I don't know why that is the case.
Therefore there is currently no version of Jest on npm that has the fix available
Thanks @JamesHenry - might be that Jest team are a bit too busy with Jest 27..?
This issue has been automatically marked as stale because it hasn't had any recent activity. It will be closed in 14 days if no further activity occurs. If we missed this issue please reply to keep it active. Thanks for being a part of the Nx community! 🙏
Its not stale, bot.
This also happens with jest v27:
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Object'
| property 'element' -> object with constructor 'Object'
| property 'componentProvider' -> object with constructor 'Object'
--- property 'parent' closes the circle
at stringify (<anonymous>)
"@nrwl/angular": "12.9.0",
"jest": "27.0.3",
"jest-preset-angular": "9.0.7",
"ts-jest": "27.0.3",
"typescript": "4.3.5"
Hi there is this still an issue with the latest version of nx? I see the related jest issue is still open as well but wanted to see we can close this issue or not 😄
if this is still an issue please provide a minimal git repo with the issue thanks!
Much has changed since I first posted this issue.
I have no longer come across this this issue and I am unable to reproduce using:
"jest": "27.5.1",
"jest-preset-angular": "11.1.1",
"ts-jest": "27.1.4",
On my side - I am happy to close...
Thanks for confirming @ubergeoff!
This issue has been closed for more than 30 days. If this issue is still occuring, please open a new issue with more recent context.
Current Behavior
Previously - before the update that introduced Jest 26 - missing dependency were outlined within the spec tests very nicely/clearly.
But now: Post - Jest 26 update:
1) After the test fails: The process never stop running - and you now have to force kill the tests. 2) We now get these "unclear" errors. I.e. errors provided have become very opaque. Example:
Expected Behavior
In the versions prior to Jest 26 - the error was much, much clearer - and pointed to the exact issue at hand:
I feel this is regression as we now - have to "guess" what is missing from the tests - this leads to a much worse DX :(
Steps to Reproduce
Create a simple service that has a simple dependency on something. Example: ensure your service has DI of: HttpClient in it.
Example:
Inject this "new" service into your component.
Run your component spec test - without mocking out any of your dependency.
Failure Logs
However - this should actually show me something like:
Environment