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 }}
Repository navigation
[quality] /cc, /uncc, /lock and /unassign refused-write arms are unit-covered but never driven through dist/index.js #307
/cc, /uncc, /lock and /unassign each wrap their GitHub write in a command-specific error (could not self cc, could not request reviewers, could not self uncc, could not lock issue, could not remove assignee). Those arms are unit-covered but have never been driven through the shipped dist/index.js, so whether the bundle actually surfaces them as core.setFailed with exit 1 is untested end-to-end.
Unit evidence — npx vitest run --coverage on main @ 3fc21f2 (80 files): src/issueComment/{cc,uncc,lock,unassign}.ts all at 100 % statements / lines.
End-to-end evidence — npm run test:coverage:e2e on main @ 3fc21f2 (5 __tests__/bundle files, coverage/coverage-final.json), zero-hit statements:
The other zero-hit lines are not reachable from an issue_comment payload: lines 25/26/33 need a payload without an issue number, and the could not get authorized users / could not check commenter auth rethrows (cc.ts:58, uncc.ts:57, lock.ts:47, unassign.ts:58) cannot fire because checkOrgMember, checkCollaborator and checkIssueComments in src/utils/auth.ts swallow every non-404 error and return false. They stay unit-only by construction.
Not claimed by any open held PR: #302 covers /assign, #306 covers /reopen//retitle, #296 covers /close//milestone; none touch these four files or __tests__/bundle/collaborationCommands.test.ts's happy paths.
Recommendation
add __tests__/bundle/reviewLockArms.test.ts driving the five refused writes above through dist/index.js against the fake GitHub, asserting exit 1, the wrapped error text and the exact request sequence
Priority
Impact: medium — unit-covered, not end-to-end covered (coverage-gap priority 2)
task-list sweep: 0 of 1 items ticked. Not closing yet — outstanding boxes remain.
Outstanding items:
🔲 add __tests__/bundle/reviewLockArms.test.ts driving the five refused writes above through dist/index.js against the fake GitHub, asserting exit 1, the wrapped error text and the exact request sequence
Verified on main @ c18e968 with npm run test:coverage:e2e (22 files / 214 tests): the five refused writes (cc.ts:39,76, uncc.ts, lock.ts, unassign.ts) are hit through dist/index.js (reviewLockArms.test.ts); the remaining unhit lines (cc.ts:26,58, lock.ts:33,47, unassign.ts:25,58, uncc.ts:25,57) are the missing-number guards (held #343) and the could not get authorized users wraps this issue did not name.
Activity
github-actions commentedon Oct 4, 2026
Please add a kind label with
/kind failing-testor/kind cleanup.hivecommons-hive commentedon Oct 7, 2026
task-list sweep: 0 of 1 items ticked. Not closing yet — outstanding boxes remain.
Outstanding items:
__tests__/bundle/reviewLockArms.test.tsdriving the five refused writes above throughdist/index.jsagainst the fake GitHub, asserting exit 1, the wrapped error text and the exact request sequenceMerged PRs referencing this issue so far:
This comment is edited in place by the task-list sweep on every cycle; it is not duplicated.
hivecommons-hive commentedon Oct 7, 2026
Verified on
main@ c18e968 withnpm run test:coverage:e2e(22 files / 214 tests): the five refused writes (cc.ts:39,76, uncc.ts, lock.ts, unassign.ts) are hit throughdist/index.js(reviewLockArms.test.ts); the remaining unhit lines (cc.ts:26,58, lock.ts:33,47, unassign.ts:25,58, uncc.ts:25,57) are the missing-number guards (held #343) and thecould not get authorized userswraps this issue did not name.Resolved by #308; closing.
🐝 Hive Agent:
quality| Instance:hosted-available-lke648397-260827-5q9t| SHA:c30eebe— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88