Skip to content

test(sweep): pin blunderbuss ignore_authors on the sweep and the since-window edge - #516

Merged
mrbobbytables merged 1 commit into
mainfrom
quality/test-sweep-mutation-survivors
Oct 21, 2026
Merged

mrbobbytables merged 1 commit into
mainfrom
quality/test-sweep-mutation-survivors

Conversation

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Test Improvement

Files: __tests__/cronJobTest/sweep.test.ts only. No src/, dist/, docs/ or eslint.config.mjs change — disjoint from #510 (src/utils/auth.ts, dist/index.js), #511 (docs/contributing.md), #512 (__tests__/label/remove.test.ts, eslint.config.mjs) and #514 (__tests__/utils/labelMatch.test.ts, __tests__/utils/command.test.ts).

A single-operator mutation probe over src/cronJobs/* and src/plugins/{ownersLabel,blunderbuss,requireMatchingLabel,lgtmBinding}.ts on main @ 88241f4 (258 mutants; details on #515) left four non-equivalent survivors against their full vitest related set, all in src/cronJobs/sweep.ts. Four cases pin them:

  • sweep candidates › includes a pull request updated exactly at the start of the window — sweep.ts:178 (>= on updated_at).
  • sweep candidates › a full page whose oldest entry sits exactly on the start of the window is not the last page — sweep.ts:179 (the exhausted fold); asserts page=1 and page=2 were listed via servePulls's listCalls.
  • sweep on a repository with OWNERS files › a pull request opened exactly at the start of the window is fresh and gets reviewers — sweep.ts:149 (< on created_at).
  • sweep on a repository with OWNERS files › a fresh pull request by an author in blunderbuss.ignore_authors gets no reviewers — sweep.ts:163 (explicit: false); configures ignore_authors: [Dave] through prowYaml, asserts the requested_reviewers POST is not made and core.debug logs blunderbuss: ignoring pull request by dave (also pins the case-insensitive match).

Verification (this branch, local)

  • npx vitest run __tests__/cronJobTest/sweep.test.ts: 35 passed (31 on main)
  • same, with each mutant applied to src/cronJobs/sweep.ts in turn: :149 1 failed, :163 1 failed, :178 3 failed, :179 1 failed (mutants reverted, not committed)
  • npx eslint __tests__/cronJobTest/sweep.test.ts: clean
  • The msw "unhandled request" noise the file prints (POST /graphql, GET /branches/master) is the pattern main already prints for the existing 100-pull-request paging test; the 100-pull-request case here adds the same.

Related Issue

Fixes #515


Filed by quality agent (hold-gated mode). Human review required.

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

…e-window edge

Four single-operator mutants in src/cronJobs/sweep.ts survived the full
vitest related set: explicit:false -> true at line 163 (the sweep would
request reviewers on pull requests by blunderbuss.ignore_authors), and
the three comparisons against since at lines 149, 178 and 179 (a pull
request updated or opened exactly at the start of the window, and a
full page whose oldest entry sits on it). Each now fails at least one
of the four added cases; no src/ change.

Signed-off-by: quality <280983584+hivecommons-hive[bot]@users.noreply.github.com>
@hivecommons-hive
hivecommons-hive Bot requested a review from jpmcb as a code owner October 19, 2026 05:18
@hivecommons-hive hivecommons-hive Bot added the hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 19, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

Important

Held for human review by the hive's ACMM level gate.

This PR was opened by the "quality" agent while Hive policy required a human checkpoint for that agent. Agent PRs are held at ACMM L3–L5; an outreach PR that targets a repository this hive does not manage is held at every level because it publishes project-facing communication into someone else's project.

Hive will keep the hold label until a human removes it. Operators can make a deliberate one-off release during an ACMM level change with release_level_holds=true, but level changes never release this hold automatically.

@github-actions

Copy link
Copy Markdown
Contributor

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

@mrbobbytables mrbobbytables left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review performed under the maintainer's explicit authorization to update, review, release reviewed holds, and merge eligible PRs in this cleanup.

The sweep cases observe inclusive time boundaries, continuation beyond a full page ending at the boundary, and the case-insensitive ignored-author no-write behavior.

Verified successful build-test, e2e-coverage and DCO results on head 71a1ab1. Any folded issue findings remain assigned to the canonical destinations in the updated scope tables.

@mrbobbytables mrbobbytables added kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. and removed hold Indicates that a PR should not merge because someone has issued a /hold command. needs-kind labels Oct 21, 2026
@mrbobbytables
mrbobbytables merged commit 300baa1 into main Oct 21, 2026
18 checks passed
@mrbobbytables
mrbobbytables deleted the quality/test-sweep-mutation-survivors branch October 26, 2026 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[quality] mutation survivors in src/cronJobs/sweep.ts: blunderbuss explicit:false (:163) and the since-window edge (:149,:178,:179)

1 participant