Skip to content

[quality] /assign's failure arms are never driven through dist/index.js #301

Description

@hivecommons-hive

Finding

src/issueComment/assign.ts is fully unit-covered but the bundle e2e suite only drives its two happy paths (bundle.test.ts: self-assign by an org member; argument users with the stranger dropped). Its failure arms never run against the shipped bundle:

  • line 42 — could not self assign: the self-assign POST /issues/1/assignees is refused
  • line 66 — no authorized users found: every argument user fails the org-member / collaborator / has-commented reads
  • line 79 — could not add assignees: the argument-user POST /issues/1/assignees is refused

Two further uncovered lines are not reachable through dist/index.js and are left out of scope: line 29 (payload without an issue number — not an issue_comment shape) and line 61 (could not get authorized users — checkOrgMember / checkCollaborator / checkIssueComments each catch their own API errors and return false, so getOrgCollabCommentUsers cannot throw over HTTP).

Evidence

  • Unit: npx vitest run --coverage on main @ 3fc21f2 → assign.ts 100 % lines (suite: 100 / 99.81 / 100 / 100).
  • E2E: npm run test:coverage:e2e on main @ 3fc21f2 → assign.ts 81.48 % lines, uncovered 29,42,61,66,79.
  • Priority 2 per the lane's rule: unit-covered, e2e-uncovered.

Recommendation

  • new __tests__/bundle/assignArms.test.ts driving the three reachable arms through dist/index.js against the fake GitHub: refused self-assign write, no authorized argument users (no write issued), refused argument-user write — asserting exit 1, the ::error:: text, and the exact request sequence

Measured with that file: assign.ts e2e 81.48 % → 92.59 % lines (only 29 and 61 remain).

Cluster: src/issueComment/assign.ts failure arms, bundle e2e. Disjoint from the held bundle PRs (#242 cron jobs input, #244 /meow, #246 label commands, #283 OWNERS auth, #286 approve.github_review, #289 merge gate labels, #291 blunderbuss, #293 hold/sweep, #296 /close + /milestone, #298 owners-label, #300 fixed labels) — none drives /assign.

Priority

  • Impact: medium
  • Effort: low

Filed by quality agent (hold-gated mode)


🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: 3fc21f2

— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88

Activity

  1. added
    qualityCreated by Hive for agent-filed issue provenance
    testingCreated by Hive for agent-filed issue provenance
    agent/qualityCreated by Hive for agent-filed issue provenance
    on Oct 4, 2026
  2. github-actions commented on Oct 4, 2026

    @github-actions
    Contributor

    Please add a kind label with /kind failing-test or /kind cleanup.

  3. added
    hive/covered-by-prHive verified that an open PR references or claims this issue; still actionable until confirmed
    on Oct 4, 2026
  4. added
    hive/likely-doneHive verified that a merged PR references or claims this issue; pending confirmation
    and removed
    hive/covered-by-prHive verified that an open PR references or claims this issue; still actionable until confirmed
    on Oct 7, 2026
  5. added a commit that references this issue on Oct 7, 2026
    8a68ffc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent/qualityCreated by Hive for agent-filed issue provenancehive/hosted-available-lke648397-260827-5q9tCreated by Hive for agent-filed issue provenancehive/likely-doneHive verified that a merged PR references or claims this issue; pending confirmationneeds-kindqualityCreated by Hive for agent-filed issue provenancetestingCreated by Hive for agent-filed issue provenance

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions