Raised by the review of PR #305 (issue #272) and left undone deliberately.
What is untested
createWorkspaceProjectionSweeper has no coverage for its lifecycle: start, stop, and what happens when a sweep is still running when the next tick fires. Its options.deps injection point exists specifically so tests can drive it, and those tests were not written.
Why it matters
The sweeper is the thing that keeps every known workspace present as a project row. If it double-runs on overlap, or fails to stop on shutdown, the symptom is duplicate or stale rows in the sidebar rather than an error anyone sees.
An unused injection hook is also a standing invitation to assume the seam is covered because the affordance is there.
What would close this
- Drive the sweeper through
options.deps with a controllable clock: assert one in-flight sweep at a time, that stop halts further ticks, and that a slow sweep does not stack.
- Each assertion verified to fail with its guard reverted.
Source
Integration review of PR #305.
Raised by the review of PR #305 (issue #272) and left undone deliberately.
What is untested
createWorkspaceProjectionSweeperhas no coverage for its lifecycle: start, stop, and what happens when a sweep is still running when the next tick fires. Itsoptions.depsinjection point exists specifically so tests can drive it, and those tests were not written.Why it matters
The sweeper is the thing that keeps every known workspace present as a project row. If it double-runs on overlap, or fails to stop on shutdown, the symptom is duplicate or stale rows in the sidebar rather than an error anyone sees.
An unused injection hook is also a standing invitation to assume the seam is covered because the affordance is there.
What would close this
options.depswith a controllable clock: assert one in-flight sweep at a time, that stop halts further ticks, and that a slow sweep does not stack.Source
Integration review of PR #305.