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
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
plugin-calendar: object-calendar-renderer.propsContract.test.tsx escapes to the real network on 127.0.0.1:3000 (4 ECONNREFUSED, same class as #3339 / #5225 / #5280) #5438
Found while working #5421 — this is the stderr noise that the coverage-lane logs show and that a reader could mistake for the shard failure. It is not a failure: the run stays green. Filed unassigned.
Measured
From the repo root of a clean worktree on main (9f7d786bd), the file standing alone:
pnpm exec vitest run packages/plugin-calendar/src/object-calendar-renderer.propsContract.test.tsx
Attribution was confirmed twice: a single-worker sequential run of a 27-file subset (--maxWorkers=1 --fileParallelism=false) prints the four errors in the middle of this file's own case list, between the locale-rejection cases and the onEventClick cases; and the file alone reproduces all four.
Coverage is irrelevant to it — the same four appear with and without --coverage, so the green PR lane carries this noise today as well. On CI the same four appear as AggregateError with both ::1:3000 and 127.0.0.1:3000 legs, because the runner has IPv6.
Mechanism
happy-dom's default document origin is http://localhost:3000/, so any relative-URL fetch that nothing intercepts resolves against that origin and leaves the process for real. No test file in the shard stubs fetch for this path — the request comes from the component graph under test, on the branch where the node does not carry the declared data pre-fetch array and the component therefore runs its own fetch.
Same defect class as #3339 (plugin-detail), #5225 (plugin-report) and #5280 (plugin-dashboard DatasetWidget), all closed. This is a new member of it, not a regression of those.
Why it is worth closing
It is a real, unhandled outbound connection from a unit test: on any machine where something is listening on port 3000, the assertion outcome depends on what that server answers.
Fix shape follows the closed siblings: give the component's own fetch path a stub (or author the data pre-fetch array on the nodes that do not need to exercise the fetching branch), so nothing in the file reaches the network.
Triage: queued, type Task — a unit test making real outbound connections (4× ECONNREFUSED to 127.0.0.1:3000) is a latent flake whose verdict depends on whatever listens on that port, and its stack traces already caused one mis-filed card (#5421). Fix shape follows the three closed siblings (#3339 / #5225 / #5280): stub the component's fetch path or author the data pre-fetch array. Size/model suggestion: S, sonnet.
Activity
os-zhuang commentedon Aug 21, 2026
Triage: queued, type Task — a unit test making real outbound connections (4× ECONNREFUSED to 127.0.0.1:3000) is a latent flake whose verdict depends on whatever listens on that port, and its stack traces already caused one mis-filed card (#5421). Fix shape follows the three closed siblings (#3339 / #5225 / #5280): stub the component's fetch path or author the
datapre-fetch array. Size/model suggestion: S, sonnet.Generated by Claude Code
test(plugin-calendar): serve the record-level explain probe from a do…