-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(jest-circus) correct concurrent event ordering #15381
fix(jest-circus) correct concurrent event ordering #15381
Conversation
✅ Deploy Preview for jestjs ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
@SimenB - the failures on the checks seem to be affecting other PRs. |
…end of the sync loop
This reverts commit df577c2.
0578d54
to
99ada77
Compare
Hey, sorry about the radio silence! CI should be fixed now, and I've merged in |
I think this makes sense, looking at the implementation changes. And the extensive tests (thank you!!!) also seems reasonable to me |
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Summary
Note this is a re-raise of an old PR that I previously let go stale.
I'm unsure if this is a major, minor, or patch change. It does not change the API, but it changes the order of events emitted from
jest-circus
. Please advise.This fixes the issue documented here
When using
test.concurrent
events such astest_start
,test_started
, andtest_fn_start
are dispatched after the body of the test is executed. This is due to the_runTest
function not being executed as part of the parallel execution runner; instead, it was executed synchronously like non-concurrent tests.The solution was to use _runTest within startTestsConcurrently() and then wait for that process to complete instead of replacing the
test.fn
as was being done before.I also added a bunch of e2e tests for concurrent, this change most likely closes some other issues relating to
before/afterAll
.Test plan
953bbed700
yarn test packages/jest-circus/src/__tests__/baseTest.test.ts
to observe the broken snapshot content for the concurrent test.HEAD
and rerun the test. Note that the output has been reordered to match the expectation that the circus actions occur before and after the test execution.yarn jest e2e/__tests__/circusConcurrent.test.ts
andyarn jest e2e/__tests__/testRetries.test.ts
Note: at the time this is being raised
main
does not passyarn test
, I have confirmed that the same tests are failing before and after my change.