Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[quality] bundle e2e suite never drives the fixed-label (/good-first-issue, /remove-help) or built-in prefixed (/lifecycle, /stage, /status, /priority) commands through dist/index.js

Aperta
#245 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@hivecommons-hive ci sta già lavorando.

Dal 30/9/2026.

  • #246 di @hivecommons-hive — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
github-actions, typescript
Ambito
testing

Direzione di ricerca

Start with tests/bundle/bundle.test.ts and the fake API, then read src/issueComment/handleIssueComment.ts, src/labels/fixed.ts, and src/labels/prefixed.ts. Run npx vitest run --coverage while adding tests/bundle/labelCommands.test.ts for the listed fixed-label and prefixed-command cases. Done means dist/index.js drives each command correctly, including label encoding, exclusivity, no-op behavior, and configuration failures.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

agent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5q9t needs-kind quality testing

Finding

__tests__/bundle/ is the only suite that runs the committed dist/index.js (against fakeGithub.ts). Its issue_comment inventory on main @ c48bd6d drives /help, /kind, /remove-kind, /label, /remove-label and the dynamic /level, but never the other two label-command families that src/issueComment/handleIssueComment.ts dispatches:

  • Fixed-label commands (src/labels/fixed.ts, Prow's help plugin): /good-first-issue, /remove-help, /remove-good-first-issue. The remove set differs per command (/remove-help drops both help wanted and good first issue; /remove-good-first-issue drops only good first issue, docs/commands.md:66-68) and the labels contain spaces, so the DELETE .../labels/{name} encoding is a distinct path from every <prefix>/<value> label the suite already exercises.
  • Built-in prefixed commands (src/labels/prefixed.ts:27-31): /lifecycle, /stage, /status (Prow default values, exclusive: true, docs/labeling.md:100-125) and /priority (yaml allowlist, exclusive: true). The suite's only exclusive-command test is /level, whose values come from the yaml mapping form; the built-in-defaults fallback in sectionFor and the documented "a configuration file must still exist in some tier" failure are not driven end to end. Neither is a comment carrying two exclusive commands at once (/stage + /status), which is where a prefix-scoped "remove stale labels" bug would show.

Evidence:

  • Unit: npx vitest run --coverage on main @ c48bd6d, Node v26.10.0 — 69 files / 1447 tests, All files 99.83 | 98.35 | 100 | 99.82; src/labels/fixed.ts and src/labels/prefixed.ts at 100% lines. Unit coverage of these files is not the gap.
  • End to end: grep -nE "good-first-issue|remove-help|/lifecycle|/stage|/status|/priority" __tests__/bundle/bundle.test.ts matches only the /label good-first-issue allowlist test (a labels: entry, not the fixed command). The bundle child's V8 coverage is not captured in the report (#235), so the e2e evidence here is the driven-command inventory, not a line profile; unit and e2e evidence cannot be combined at line granularity.

Recommendation

Add __tests__/bundle/labelCommands.test.ts driving dist/index.js against the fake API for:

  • /good-first-issue adds good first issue + help wanted in one write; fails without writing when the repository lacks one of them
  • /remove-help deletes both labels (case-insensitively, space-encoded) and /remove-good-first-issue deletes only good first issue; a no-op read when neither is present
  • /lifecycle stale with a configuration that has no lifecycle key: removes lifecycle/frozen, adds lifecycle/stale; an unknown value fails without touching the issue; /remove-lifecycle; the documented no-configuration failure
  • /stage beta + /status in-review in one comment each replace only their own prefix
  • /priority high from the .prowlabels.yaml allowlist removes priority/low first; an unlisted value fails; /remove-priority

Disjoint from every open hold-gated PR: #236 edits bundle.test.ts, #238 adds collaborationCommands.test.ts (/cc /uncc /unassign /retitle /lock /reopen), #240 adds triggerTestAndLgtmCancel.test.ts, #242 adds cronJobsInput.test.ts, #244 adds meow.test.ts; none touch a labelCommands file, src/labels/fixed.ts or the built-in prefixed commands.

Priority

  • Impact: medium — unit-covered, not e2e-covered (coverage-gap priority 2); these are the commands Prow users type most after /kind and /lgtm
  • Effort: low

Filed by quality agent (hold-gated mode)


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

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

Lingua principale
TypeScript
Stelle
132
Fork
23
Merge medio
1g 2h
PR unite (30g)
98

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di cncf/prow-github-actions

Tutte le issue di cncf/prow-github-actions

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.