[quality] trigger.ts: /test matches workflow names and paths case-insensitively, /ok-to-test honours an existing label in any case, and the non-PR arm of /test and /ok-to-test leaves the run green — none of it is asserted
Los mantenedores suelen responder en 2 días
@hivecommons-hive ya está trabajando en esto.
Desde el 19/10/2026.
- #524 de @hivecommons-hive — abierto
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- github-actions, typescript
Línea de trabajo
Lee __tests__/issueCommentTest/trigger.test.ts junto con src/issueComment/trigger.ts y luego ejecuta las pruebas pertinentes de Vitest. Añade los casos recomendados para nombres y rutas de workflows sin distinguir mayúsculas y minúsculas, una etiqueta existente con mayúsculas y minúsculas mezcladas y comandos que no sean de PR que mantengan la ejecución en verde. El trabajo estará terminado cuando esas aserciones detecten las mutaciones supervivientes indicadas; el issue pide cambios solo en las pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Finding
src/issueComment/trigger.ts is 100 % line- and branch-covered by npm run test:coverage and all but one branch (statusOf, line 323) by npm run test:coverage:e2e on main @ 88241f4. A single-operator mutation probe over the file (117 mutants: ===/!==, &&/||, ??/||, comparison bounds, .some/.every, .toLowerCase() removal, true/false, ++/--, continue/break, status codes) still left five non-equivalent survivors against npx vitest related src/issueComment/trigger.ts --run (43 files / 837 tests):
| line | mutant | behaviour nothing asserts |
|---|---|---|
| 272 | (run.name ?? '').toLowerCase() === arg → (run.name ?? '') === arg |
/test e2e must match a workflow whose display name is E2E even when its file (end-to-end.yml) does not. The existing /test CI case passes through the lowercase fixture path ci.yml, so the name comparison is never the deciding arm. |
| 275 | run.path.toLowerCase() → run.path |
/test lint-checks must match .github/workflows/Lint-Checks.yml. Every fixture path is already lowercase. |
| 121 | label.toLowerCase() === okToTestLabel → label === okToTestLabel |
A pull request already carrying OK-To-Test must not have the label re-added, and with nothing pending gets the "No workflow runs waiting" comment rather than a rocket. Only the exact-case label is tested. |
| 72 | /test: cmd === undefined → cmd === null |
/test on a plain issue comments "only applies to pull requests" and leaves core.setFailed uncalled. The /retest sibling test asserts both; the /test and /ok-to-test ones assert only the comment, so a thrown TypeError after the comment goes unnoticed. |
| 113 | /ok-to-test: same |
same |
Equivalent survivors, not actionable: count-- in rerunEach (only === 0 is observed), current === null in headRuns (GITHUB_WORKFLOW is always set in Actions), ??→|| on empty-string folds, and type-annotation undefined→null.
Recommendation
Add to __tests__/issueCommentTest/trigger.test.ts:
/test› anit.eachwithE2E/end-to-end.ymlunder/test e2eandLint/Lint-Checks.ymlunder/test lint-checks, asserting the re-run and that no listing comment is posted./ok-to-test› the label-already-present case with{ name: 'OK-To-Test' }./testand/ok-to-test› extend the "only applies to pull requests" tests with asetFailedspy asserted not called (and, for/test, the exactcallslist; for/ok-to-test, that the runs endpoint is not read).
Test-only; no src/ or dist/ change. Disjoint from the open held PRs #510–#522 (auth, contributing, remove, command/labelMatch, sweep, tide, requireMatchingLabel, approve).
Evidence
- unit:
npm run test:coverage→ 100 / 99.75 / 100 / 100 (main @ 88241f4, local run) - e2e:
npm run test:coverage:e2e→ 99.96 / 98.79 / 100 / 99.95 (same revision, local run; the two reports are produced by different transforms and are not merged, asvitest.e2e-coverage.config.mjsdocuments) - probe: each mutant applied in turn to
src/issueComment/trigger.ts,npx vitest related src/issueComment/trigger.ts --run→ 837 passed for all five
Priority
- Impact: medium —
/testis the user-facing re-run command; case-insensitive matching is what makes/test ciwork for a workflow namedCIin a file not namedci.yml - Effort: low
Filed by quality agent (hold-gated mode)
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: 88241f4
— 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)
- 218
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] Unit msw servers reject unhandled requests but no test fails when the code under test swallows the rejection (158 tests run through fallbacks)Posiblemente ocupada @hivecommons-hive la tomó hace 1 día. Abiertoagent/quality needs-kind stage/040-covered-by-pr testing
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
cncf/prow-github-actions#570 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
[quality] bundle fake answers unrouted requests with a plain 404; the harness should assert on unexpected traffic outside application fallbacksPosiblemente ocupada @hivecommons-hive la tomó hace 1 día. Abiertoagent/quality needs-kind stage/040-covered-by-pr testing
Dificultad 3/5 Medio día Aptitud para principiantes 48/100
cncf/prow-github-actions#568 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[quality] sweep.ts delayed-reviewers OWNERS guard (line 80 false arm) is covered by neither the unit nor the bundle suitePosiblemente ocupada @hivecommons-hive la tomó hace 2 días. Abiertoagent/quality needs-kind stage/040-covered-by-pr testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
cncf/prow-github-actions#560 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
Follow-up: strengthen test contracts, CI enforcement, release delivery, and quality triagePosiblemente ocupada @hivecommons-hive la tomó hace 2 días. Abiertokind/cleanup quality stage/040-covered-by-pr tests
Dificultad 5/5 Más de una semana Aptitud para principiantes 18/100
cncf/prow-github-actions#554 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
[quality] Re-evaluate the e2e branch coverage floor after pending coverage work landsPosiblemente ocupada @hivecommons-hive la tomó hace 2 días. Abiertohive/claimed-by-quality kind/cleanup stage/040-covered-by-pr
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
cncf/prow-github-actions#551 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de cncf/prow-github-actions
Issues similares
-
area:desktop bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
anthropics/claude-code#104801 ·
Los mantenedores suelen responder en 1 día
-
Add: Halloween Non Stop SDAbiertocheck:passed streams:add
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
spudly/design-system#110 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
[Bug]: REST API URL starting with "http" but no scheme (e.g. httpbin.org/get) is not given an http:// prefixPosiblemente ocupada @ItsDeadlyProgrammer la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
appsmithorg/appsmith#42471 · 1 comentario ·
Los mantenedores suelen responder en 2 días