[quality] tide's merge-queue skip and enqueue-refusal arms are unit-covered but never driven through dist/index.js
メンテナーはふだん 2 日以内に返信
関連するプルリクエストがすでにマージされています。
- #322 @hivecommons-hive による — マージ済み
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 20/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 停滞
- 技術スタック
- typescript
- 領域
- testing-qa
調査の方向性
Read __tests__/bundle/bundle.test.ts, src/plugins/tide.ts, and src/utils/mergeQueue.ts to see how bundle tests use fakeGithub and drive the queue paths. Run npm run test:coverage:e2e to check coverage through dist/index.js. Done means the proposed merge-queue arms are exercised and the cited lines show end-to-end hits; a linked pull request is already open.
索引モデルが issue の本文から書いたものです。
説明
Finding
src/plugins/tide.ts's merge-queue path (evaluateInQueue, lines 294–348) and src/utils/mergeQueue.ts's refusal classification (classify/errorMessage, lines 164–189, plus the pullRequest: null arm at 94–96) are fully covered by the unit suites (__tests__/plugins/tide.test.ts, __tests__/utils/mergeQueue.test.ts) but only partly reached by the end-to-end bundle suite.
Unit evidence — npx vitest run --coverage on main @ 3fc21f2 (80 files / 1639 tests): src/ 100 % lines / 99.81 % branches; both files 100 % lines.
End-to-end evidence — npm run test:coverage:e2e on main @ 3fc21f2 (Node v26.10.0, vitest 5.0.3, @vitest/coverage-v8; 5 files / 142 tests): src/ 77.9 % lines. tide.ts 81.02 % lines, uncovered in the queue path: 303–304 (pr already in the queue, with/without an entry), 308 (the retryIf re-read predicate), 313 (queue-refused state), 316 (head moved during evaluation), 335/337/339 (head_moved/already_queued/not_ready refusals), 346–347 (unclassified refusal). mergeQueue.ts 84.09 % lines, uncovered: 95–96 (state query without a pull request), 167/170/173/178 (classify), 188 (errorMessage without a GraphQL errors array). bundle.test.ts's existing queue cases drive only the successful enqueue, merge_queue: off, the forbidden refusal, the state-query GraphQL error, and dequeue.
The two runs are reported separately on purpose (see vitest.e2e-coverage.config.mjs): their statement maps come from different transforms and do not line-merge, so this is stated per source, not combined.
Recommendation
Add __tests__/bundle/mergeQueueArms.test.ts driving a pull_request labeled lgtm run on a queue-enabled branch through dist/index.js against fakeGithub for each arm above: in-queue skip (entry and no entry), dirty refusal, an unknown first read whose re-read has a different head, each classified enqueueError message, an HTTP 500 on the mutation, and a state query answering pullRequest: null.
-
__tests__/bundle/mergeQueueArms.test.tslands andtide.tslines 303–347 /mergeQueue.tslines 95–188 show e2e hits undernpm run test:coverage:e2e
Priority
- Impact: medium — covered by unit tests but not end-to-end; this is the path a queue-protected branch takes on every
lgtm - Effort: low
Filed by quality agent (hold-gated mode)
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5q9t | SHA: 443e72f
— hive: agent=quality backend=copilot model=claude-fable-5.1 copilot=1.0.88
- 主要言語
- TypeScript
- スター
- 132
- フォーク
- 23
- 平均マージ
- 1日 18時間
- マージ済み PR(30日)
- 191
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
cncf/prow-github-actions のほかの issue
-
[quality] tide.ts: six mutation survivors in the merge-queue gate, draft refusal, fork-403 workflow-file diagnosis and getPull's fork flag are unpinned by any test対応中かも @hivecommons-hive が今日担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
cncf/prow-github-actions#517 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] coverage-e2e names auth.ts:24 as the only uncovered line on main; getErrorDetails' non-object arm is unreachable through dist/ (Octokit always rejects a RequestError)対応中かも @hivecommons-hive が今日担当しました。 オープンagent/quality hive/partially-addressed hive/verified-open needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
cncf/prow-github-actions#507 · コメント 5 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] mutation survivors in src/cronJobs/sweep.ts: blunderbuss explicit:false (:163) and the since-window edge (:149,:178,:179)対応中かも @hivecommons-hive が今日担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
cncf/prow-github-actions#515 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
[quality] mutation survivors in src/utils: labelMatch.ts:23 suffix/overlap arm and command.ts:92 fence-close boundary are not pinned by any test対応中かも @hivecommons-hive が今日担当しました。 オープンagent/quality needs-kind stage/040-covered-by-pr testing
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
cncf/prow-github-actions#513 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
kind/cleanup
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
cncf/prow-github-actions#170 · コメント 2 件 ·
メンテナーはふだん 2 日以内に返信
cncf/prow-github-actions の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Koenkk/zigbee-herdsman-converters#13540 ·
メンテナーはふだん 1 日以内に返信
-
check:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
iptv-org/iptv#55821 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area/busola/ux
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
kyma-project/busola#5442 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
vercel-labs/wterm#246 ·
メンテナーはふだん 1 日以内に返信