Once buildFeasibilityVerdict (from the feasibility-gate composer issue) lands, it needs its own focused test file rather than incidental coverage — this repo's Codecov gate demands 97% patch coverage, branch-counted, and a pure composer with several discriminant inputs is exactly the kind of function that silently drops a branch (e.g. the ??/|| combining rule for two avoid-triggering signals firing at once) without dedicated tests. This is a small, purely mechanical, zero-risk test-authoring task — good for a first contribution.
Deliverables
References
test/unit/signals-coverage.test.ts (existing fixture/record-builder patterns to reuse)
- The
feasibility.ts module from the companion feasibility-gate-composer issue (depends on it landing first)
Once
buildFeasibilityVerdict(from the feasibility-gate composer issue) lands, it needs its own focused test file rather than incidental coverage — this repo's Codecov gate demands 97% patch coverage, branch-counted, and a pure composer with several discriminant inputs is exactly the kind of function that silently drops a branch (e.g. the??/||combining rule for twoavoid-triggering signals firing at once) without dedicated tests. This is a small, purely mechanical, zero-risk test-authoring task — good for a first contribution.Deliverables
test/unit/feasibility-gate-branches.test.tsexercising everyclaimStatus×duplicateClusterRisk× issuestatuscombination that the composer's logic actually branches on (read the implementation first, don't guess)avoid-triggering signals (verifies the combining rule doesn't silently drop one)gotest/unit/signals-coverage.test.tswhere the input types overlap, rather than re-authoring fixture objects from scratchnpm run test:coverage(unsharded, per this repo's contributing guide) that the new file closes any branch gapReferences
test/unit/signals-coverage.test.ts(existing fixture/record-builder patterns to reuse)feasibility.tsmodule from the companion feasibility-gate-composer issue (depends on it landing first)