You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(test-optimization): complete test runs after subscriber loss (#9381)
* fix(test-optimization): complete test runs after subscriber loss
Finish subscribers can disable themselves while handling a diagnostic-channel publication, leaving no callback owner and hanging the framework run indefinitely. Treat losing the last subscriber as completion while preserving exporter-backed waits and Jest's timeout.
* test(test-optimization): cover vitest suite finish and cucumber config-loss
The vitest worker suite-finish path (the one that awaits the flush through the
shared channel helper) had no dedicated instrumentation spec and no CI job, so
its subscriber-loss behavior rode only on end-to-end coverage. Add a real-path
spec driving the `@vitest/runner` `startTests` hook, plus `instrumentation-vitest`
and `instrumentation-cucumber` jobs alongside the other frameworks.
The cucumber spec now pins the `|| {}` guard in getWrappedStart: a
library-configuration subscriber that disables itself without responding resolves
the request to `undefined`, and the run must still finish with every remote
feature treated as disabled.
Drive-by fix:
* Drop `frameworkVersion` from the vitest worker `testSuiteFinishCh` payload; the
suite-finish subscriber never reads it and it is already carried in currentStore.
* fix(test-optimization): finish runs after plugin lifecycle errors
Mocha configuration requests publish through runStores, so an internal handler error can disable the plugin and leave delayed startup waiting forever. Re-enabling Playwright after test start can leave an active finish subscriber without a span, whose early return similarly never releases the worker.
0 commit comments