lifecycle-poc: no test coverage for the force-stop path
- Dominant language
- Go
- Stars
- 610
- Forks
- 63
- Avg merge
- 12h 28m
- Merged PRs (30d)
- 57
Description
Noted during the #2559 review. `pkg/lifecycle-poc/service_test.go` has no test exercising force-stop (`grep -n 'ErrForceStop\|Kill('` returns nothing). The force branch of `stopRunnablePipeline` (`service.go:229`) only does `rp.t.Kill(pipeline.ErrForceStop)`, canceling the tomb ctx; the source `Read` unblocks via `context.Canceled` and `Worker.Close` performs the sole teardown.
Pre-existing gap, but #2559's fix changes behavior on that path (`Close` now tears the source down where it previously leaked it too), so it's worth a test: force-stop a running poc pipeline, assert the source is torn down exactly once and no records are lost/dropped beyond the force-stop semantics. Complements the graceful + fatal-error coverage.
Contributor guide
Research direction
Read pkg/lifecycle-poc/service_test.go alongside the force branch of stopRunnablePipeline at service.go:229, and compare the existing graceful and fatal-error coverage. Add coverage for force-stopping a running pipeline, verifying the source is torn down exactly once and that records are not lost or dropped beyond force-stop semantics.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- data-engineering, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100