test(dev): add bun and chaos coverage for the dev server#778
Open
ctgowrie wants to merge 1 commit into
Open
Conversation
- Extract the spawned dev-server helpers into a shared scenario harness so new suites reuse one RunningEveDev lifecycle. - Serve a bun-installed app under the Node runtime, and pin the current bun-runtime contract: `bun eve dev` fails fast with the worker readiness error (crossws's Node adapter refuses to initialize when the Bun global exists) instead of hanging. Both tests skip when bun is not installed; the scenario CI job now installs a pinned bun. - Chaos-test the dev server: an authored edit storm (rapid edits, broken TypeScript, deletes, concurrent forced rebuilds, a structural env change) with a continuous health probe that tolerates zero failed requests, and a crash/abort sequence (worker process.exit, aborted streaming response, crash racing a rebuild) that must recover to a completed streamed turn. Signed-off-by: Casey Gowrie <[email protected]>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This was referenced Jul 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Why
The dev-server lifecycle stack (#759–#773) is covered per-promise, but two surfaces had no coverage at all: apps installed with bun, and adversarial sequences that try to break a running dev server.
What changed
eve dev --no-uihelpers (process lifecycle, URL wait, failure signatures, probes) move fromdev-server.scenario.test.tsintotest/scenarios/dev-server-harness.tsso every dev-server suite reuses oneRunningEveDevlifecycle. The existing 10 scenarios are unchanged in behavior.packageManager: "bun", and a new suite serves a bun-installed weather app under the Node runtime through a full streamed turn.bun eve devcannot boot today — Nitro wires crossws's Node adapter into every dev worker and that adapter throws[crossws] Using Node.js adapter in an incompatible environmentwhenever theBunglobal exists. The suite pins the eve-owned contract until upstream support exists: startup fails fast with the worker readiness error and a nonzero exit, rather than hanging or serving a half-broken server. Both bun tests self-skip when bun is absent; the scenario CI job installs a pinned bun (setup-bun v2.2.0, SHA-pinned).eve devsubprocesses:process.exitworker crash followed by a 10-request burst that must be all-200 on the replacement worker, and a second crash racing a forced rebuild — ending with a completed streamed turn and no reset-socket signatures in the output.Validation
Stack
Stacked on #773 (Stage 5). Test-and-CI only; no runtime changes.
🤖 Generated with Claude Code