fix(vite): NxReporter compatible with Vitest ≥0.29 #31425
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Current Behavior
Running
nx test … --reporter=verbose
(or any additional Vitest reporter) onprojects that use Vitest ≥ 0.29 hangs indefinitely at the end of the run.
vitest
itself finishes, but the Nx task-runner never receives the donesignal because
NxReporter
only implements the legacyonFinished()
hook.When multiple reporters are configured, Vitest now emits
onTestRunEnd()
instead ofonFinished()
, so the promise inNxReporter
remains unresolved and the worker process stays alive forever.
Expected Behavior
nx test
(and affectednx run-many --target=test
) exits cleanly on allVitest versions, regardless of how many reporters are passed.
NxReporter
resolves its internal promise via eitheronTestRunEnd
(Vitest ≥ 0.29) oronFinished
(Vitest ≤ 0.28).Implementation Notes
onTestRunEnd
method that delegates to a private_handleFinished
.onFinished
as a thin delegate to the same helper.Related Issue(s)
Closes nrwl/nx#<insert-issue-number-if/when-one-exists>