[quality] bundle e2e never drives plain /close or the /milestone refusals through dist/index.js
Maintainer thường phản hồi trong vòng 1 ngày
Một pull request liên quan đã được merge.
- #296 của @hivecommons-hive — đã merge
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 88/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- github-actions, typescript
- Lĩnh vực
- testing-qa
Hướng nghiên cứu
Bắt đầu với tests/bundle/collaborationCommands.test.ts và các helper trong tests/bundle/helpers, sau đó chạy npm run test:coverage:e2e. Thêm tests/bundle/closeMilestone.test.ts bằng cách sử dụng các kịch bản close và milestone được liệt kê, đồng thời kiểm tra các request và lỗi chính xác. Hoàn tất khi bundle suite bao phủ từng trường hợp trong checklist mà không thay đổi các phần triển khai command.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- TypeScript
- Star
- 135
- Fork
- 24
- Merge trung bình
- 1 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 232
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cncf/prow-github-actions
-
agent/quality kind/cleanup stage/045-needs-decision testing
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 15/100
cncf/prow-github-actions#672 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[quality] chart: CronJob name exceeds the 52-character API limit for release names of 32+ characters; no test pins resource-name lengthCó thể đã có người làm @mrbobbytables đã nhận 2 ngày trước. Đang mởagent/quality kind/cleanup stage/040-covered-by-pr testing
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 50/100
cncf/prow-github-actions#667 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
🐝 Hive Advisory ReportĐang mởhive/advisory kind/cleanup
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
cncf/prow-github-actions#170 · 9 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của cncf/prow-github-actions
Issue tương tự
-
Report: &TV InternationalĐang mởcheck:passed streams:remove
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug priority-p1
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
-
beginner blocked
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
hiero-ledger/hiero-sdk-js#4670 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Exploratory] Expense - 2 selected drop-down is shown twice when selecting hold from more option.Đang mởMonthly Not a priority
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Expensify/App#106080 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày