Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[quality] bundle e2e never drives plain /close or the /milestone refusals through dist/index.js

Cerrado Apto para principiantes
#295 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Ya se ha fusionado un pull request relacionado.

  • #296 de @hivecommons-hive — fusionado

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
88/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
github-actions, typescript
Área
testing-qa

Línea de trabajo

Empieza con tests/bundle/collaborationCommands.test.ts y los helpers de tests/bundle/helpers; después ejecuta npm run test:coverage:e2e. Añade tests/bundle/closeMilestone.test.ts usando los escenarios de close y milestone indicados, comprobando que las requests y los errores sean exactos. Se considera terminado cuando la suite del bundle cubra cada caso de la checklist sin cambiar las implementaciones de los comandos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Finding

Cluster: src/issueComment/close.ts and src/issueComment/milestone.ts, end-to-end arms only. Disjoint from every open hold-gated bundle PR (#242 cron jobs input, #244 /meow, #246 fixed/prefixed labels, #283 OWNERS, #286 approve review, #289 tide, #291 blunderbuss, #293 hold/sweep): none of their diffs touch /close, /milestone or these two files.

Unit evidence: npx vitest run --coverage on main @ 3fc21f2 (Node v26.10.0, vitest 5.0.1, @vitest/coverage-v8 5.0.1): 100 % lines (2382/2382), 99.81 % branches, 100 % functions. Both files are fully unit-covered (__tests__/issueCommentTest/close.test.ts, milestone.test.ts).

End-to-end evidence: npm run test:coverage:e2e (the source-mapped bundle run added by #274) on the same revision, __tests__/bundle only (5 files / 142 tests): src/ at 77.9 % lines / 70.82 % branches. Per file, from coverage-final.json:

file e2e lines e2e branches lines never reached from dist/
src/issueComment/close.ts 80 % 66.66 % 24, 39, 56-60, 64
src/issueComment/milestone.ts 73.07 % 53.84 % 28, 40, 44, 52, 71-73

What that means in behaviour:

  • plain /close (lines 56-60, the else of not-planned) — the command's primary form — is never run through the bundle. bundle.test.ts drives only the non-collaborator no-op and /close not-planned. The author shortcut (isAuthor → no collaborator read, line 33) is likewise never exercised e2e.
  • /close whose PATCH /issues/1 fails never surfaces could not close issue (line 64).
  • /milestone <title> that matches no milestone never produces the milestone "…" not found. Available milestones: … failure and never proves no PATCH is sent (lines 71-73).
  • /milestone with no argument (line 52, please provide a milestone to add) and by a non-collaborator (line 44, commenter is not authorized to set a milestone) are never refused through the bundle.

Lines 24/28 (payload without an issue number) and 39/40 (checkCollaborator rejecting) are not reachable from an issue_comment payload over HTTP — checkCollaborator swallows non-404 errors and returns false — so they are not part of this gap.

Recommendation

Add __tests__/bundle/closeMilestone.test.ts (new file, same shape as collaborationCommands.test.ts: start() a fake GitHub, comment()/helpersFor() from ./helpers, assert the exact request list) covering:

  • plain /close by the issue author: no collaborator read, one PATCH /issues/1 with { state: 'closed' } and no state_reason
  • /close whose PATCH returns 500: run fails and errors names could not close issue
  • /milestone v9 with milestones v1.0, Sprint 2: run fails naming milestone "v9" not found and the available titles; no PATCH
  • /milestone with no argument: run fails with please provide a milestone to add after only the collaborator read
  • /milestone v1.0 by a non-collaborator: run fails with commenter is not authorized to set a milestone; no milestones read, no PATCH

Priority

  • Impact: medium — covered by unit tests, not by the bundle suite (coverage-gap priority 2 under the unit-but-not-e2e rule)
  • 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

Lenguaje dominante
TypeScript
Estrellas
132
Forks
24
Merge medio
1 d 17 h
PR fusionados (30 d)
219

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cncf/prow-github-actions

Todos los issues de cncf/prow-github-actions

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.