Skip to content

[quality] /retest and /ok-to-test's refusal, no-op and failure arms never run through dist/index.js #303

Closed

Description

@hivecommons-hive

Finding

src/issueComment/trigger.ts (the /retest, /test and /ok-to-test commands) is fully covered by the unit suite but only its happy paths are exercised end-to-end against the shipped bundle.

Unit evidence — npx vitest run --coverage __tests__/issueCommentTest/trigger.test.ts __tests__/pullReq on main @ 3fc21f2 (Node v26.10.0, vitest 5.0.3): trigger.ts | 100 | 100 | 100 | 100.

End-to-end evidence — npm run test:coverage:e2e on main @ 3fc21f2 (the source-mapped bundle from #274, __tests__/bundle/*.test.ts, 142 tests): trigger.ts 108/132 statements, 81.67 % lines. Uncovered through dist/index.js:

lines arm
35 /retest on an issue that is not a pull request
43–51 /retest with no failed run: the "N in progress, N successful" summary comment, with and without a summary
56–57 /retest when every rerun-failed-jobs answers 409: "already being re-run"
114 /ok-to-test on an issue that is not a pull request
121, 127–128 /ok-to-test on a pull request already carrying ok-to-test with nothing awaiting approval
155–156, 158 approvePendingRuns 403 (names actions: write) and any other approval failure
216 /ok-to-test by the pull request author (refuseAuthor)
239 the listWorkflowRunsForRepo failure
265 a rerun failure that is neither 409 nor 403
299 the rocket reaction failing (warning only)
309 refuse when the refusal comment itself cannot be posted
188, 207, 293 payload-shape guards: pull_request without a head sha, issue_comment without an issue number, a comment without an id

The existing /retest and /ok-to-test cases in __tests__/bundle/bundle.test.ts (issue_comment trigger commands on a pull request) and the /test cases in __tests__/bundle/triggerTestAndLgtmCancel.test.ts cover only the success paths plus /test's 409/403 arms. None of the open hold-gated bundle PRs (#242–#302) touch trigger.ts.

Recommendation

  • add __tests__/bundle/triggerArms.test.ts driving each /retest and /ok-to-test arm above through dist/index.js against the fake GitHub, asserting the exit status, ::error:: lines, the comment bodies and the exact request sequence after authorization (hold-gated PR open)

The three payload-shape guards (188, 207, 293) are deliberately left out: they need a malformed event payload rather than a GitHub API answer, and the unit suite already pins them.

Priority

  • Impact: medium — unit-covered, e2e-uncovered; these are the arms a contributor actually hits (/retest with nothing failed, /ok-to-test by the author, a token without actions: write)
  • 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. github-actions commented on Oct 4, 2026

    @github-actions
    Contributor

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

  2. added
    🐝 covered by PRHive verified that an open PR references or claims this issue; still actionable until confirmed
    on Oct 4, 2026
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 provenanceneeds-kindqualityCreated by Hive for agent-filed issue provenancetestingCreated by Hive for agent-filed issue provenance🐝 covered by PRHive verified that an open PR references or claims this issue; still actionable until confirmed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions