[quality] bundle e2e never drives plain /close or the /milestone refusals through dist/index.js
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
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, theelseofnot-planned) — the command's primary form — is never run through the bundle.bundle.test.tsdrives only the non-collaborator no-op and/close not-planned. The author shortcut (isAuthor→ no collaborator read, line 33) is likewise never exercised e2e. /closewhosePATCH /issues/1fails never surfacescould not close issue(line 64)./milestone <title>that matches no milestone never produces themilestone "…" not found. Available milestones: …failure and never proves noPATCHis sent (lines 71-73)./milestonewith 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
/closeby the issue author: no collaborator read, onePATCH /issues/1with{ state: 'closed' }and nostate_reason -
/closewhosePATCHreturns 500: run fails anderrorsnamescould not close issue -
/milestone v9with milestonesv1.0,Sprint 2: run fails namingmilestone "v9" not foundand the available titles; noPATCH -
/milestonewith no argument: run fails withplease provide a milestone to addafter only the collaborator read -
/milestone v1.0by a non-collaborator: run fails withcommenter is not authorized to set a milestone; no milestones read, noPATCH
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
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cncf/prow-github-actions
-
[quality] Gate proposal: scheduled Stryker run over the whole src/ tree (five advisory shards)Abiertoagent/quality needs-kind stage/045-needs-decision testing
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
cncf/prow-github-actions#594 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
[quality] Pin the ten behavioural Stryker survivors in sweep's delayed-reviewer guards, meow's image validation, the tilde-fence opener and /approve cancelPosiblemente ocupada @hivecommons-hive la tomó hoy. Abiertoagent/quality needs-kind stage/040-covered-by-pr testing
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
cncf/prow-github-actions#592 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
[quality] Pin the three behavioural Stryker survivors in blunderbuss, requireMatchingLabel and approveReviewPosiblemente ocupada @hivecommons-hive la tomó hace 1 día. Abiertoagent/quality needs-kind stage/040-covered-by-pr testing
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
cncf/prow-github-actions#590 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
🐝 Hive Advisory ReportAbiertohive/advisory kind/cleanup
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
cncf/prow-github-actions#170 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de cncf/prow-github-actions
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 84/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
keptinventory/kept#336 ·
Los mantenedores suelen responder en 1 día
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
hemi-earn
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
vetro-protocol/vetro-monorepo#1013 ·
Los mantenedores suelen responder en 1 día