#4128(nock 14.0.17 → 15.0.2)のUnit test失敗は、テスト1件の未処理rejectが原因だった。nock v15の告知済み破壊的変更とは無関係。 vote_grade.test.ts の returns false when request is aborted をfetchのspyへ変更して解消した(2026-10-18、本番コード変更なし)。残りはstagingへの反映と#4128のrebase・CI確認(人手)。
vote_grade.test.ts
returns false when request is aborted
content-encoding: gzip
ERR_INVALID_STATE
ReadableStream is already closed
submitVote
false
検証結果(submitVote への変異。旧テストはPR headのnock15で確認):
true
新テストは nock14(全2720件)・nock15(PR headに適用、全2709件)とも成功、未処理エラー0件。
dangerouslyIgnoreUnhandledErrors
onUnhandledError
signal.aborted
delay
gh
Merge pull request #4180 from AtCoder-NoviSteps/#4179
Activity
KATO-Hiro commentedon Oct 18, 2026
nock v15 移行(#4128)
概要
#4128(nock 14.0.17 → 15.0.2)のUnit test失敗は、テスト1件の未処理rejectが原因だった。nock v15の告知済み破壊的変更とは無関係。
vote_grade.test.tsのreturns false when request is abortedをfetchのspyへ変更して解消した(2026-10-18、本番コード変更なし)。残りはstagingへの反映と#4128のrebase・CI確認(人手)。判断の根拠(コード外の事実)
content-encoding: gzipの空request bodyの解凍失敗のみで(#3042)、本プロジェクトは該当しない。移行ガイドの破壊的変更9項目は不変で、削除・変更APIの利用箇所はない。ERR_INVALID_STATE(ReadableStream is already closed)を未処理rejectとして検出していた。submitVoteは本番ではブラウザーのネイティブfetchで動く。決定
false」と「signalをfetchへ渡す」の2点に限り、undiciの中断処理はテスト対象外とする。そのためfetchをspyし、undiciのbody処理を通さない。検証結果(
submitVoteへの変異。旧テストはPR headのnock15で確認):falseになるため)trueを返す新テストは nock14(全2720件)・nock15(PR headに適用、全2709件)とも成功、未処理エラー0件。
却下した案
dangerouslyIgnoreUnhandledErrors/onUnhandledErrorで除外submitVoteでsignal.abortedを事前判定、またはbodyをURLSearchParamsへ変更delayで送信中に中断delayの意味も変わった。残作業(人手)
確認限界
ghが未認証でCIログ本文は未確認。CIのNode 24のminor版はローカル(24.21.0)と異なる可能性がある。Merge pull request #4180 from AtCoder-NoviSteps/#4179