---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 148
  claims_with_evidence: 143
  claims_without_evidence: 5
confidence_derived: 0.97
---

# 根拠レポート：node モジュール単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：143 / 148、根拠なし：5
- 優先レビュー（高）
  1. **C-068〜C-071（非推奨API系テスト）**：util.deprecateの内部動作に関する挙動は実行時依存であり、静的解析のみでは完全な根拠を得られない
  2. **C-133（console.clear存在確認）**：実行環境によりconsole.clearの有無が異なるため、テストの前提条件が環境依存
  3. **C-147（status関数のfalsyフィルタ）**：filter(Boolean)の挙動は言語仕様に基づくが、具体的な入力パターンの網羅性に要確認

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `lib/node/CommonJsChunkLoadingPlugin.js` - CommonJSチャンクローディングプラグイン（121行）
- E-02: `lib/node/NodeEnvironmentPlugin.js` - Node.js環境プラグイン（73行）
- E-03: `lib/node/NodeSourcePlugin.js` - Node.jsソースプラグイン（19行、空applyメソッド）
- E-04: `lib/node/NodeTargetPlugin.js` - Node.jsターゲットプラグイン（102行、builtinsリスト含む）
- E-05: `lib/node/NodeTemplatePlugin.js` - Node.jsテンプレートプラグイン（42行）
- E-06: `lib/node/NodeWatchFileSystem.js` - ファイル監視システム（198行、7種の引数バリデーション含む）
- E-07: `lib/node/ReadFileChunkLoadingRuntimeModule.js` - readFileベースのチャンクローディングランタイムモジュール（286行）
- E-08: `lib/node/RequireChunkLoadingRuntimeModule.js` - requireベースのチャンクローディングランタイムモジュール（239行）
- E-09: `lib/node/ReadFileCompileAsyncWasmPlugin.js` - 非同期WASMコンパイルプラグイン（123行）
- E-10: `lib/node/ReadFileCompileWasmPlugin.js` - 同期WASMコンパイルプラグイン（127行）
- E-11: `lib/node/nodeConsole.js` - Node.jsコンソールロガーファクトリ（186行）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-001 | CommonJsChunkLoadingPlugin: デフォルトオプションで初期化 | E-01 (L26: `constructor(options = {})`) | ○ |
| C-002 | CommonJsChunkLoadingPlugin: asyncChunkLoading=trueでオプション保持 | E-01 (L26-29) | ○ |
| C-003 | CommonJsChunkLoadingPlugin: asyncChunkLoading=falseでオプション保持 | E-01 (L26-29) | ○ |
| C-004 | asyncChunkLoading=trueでReadFileChunkLoadingRuntimeModule使用 | E-01 (L37-38: `this.options.asyncChunkLoading ? require("./ReadFileChunkLoadingRuntimeModule")`) | ○ |
| C-005 | asyncChunkLoading=falseでRequireChunkLoadingRuntimeModule使用 | E-01 (L39: `: require("./RequireChunkLoadingRuntimeModule")`) | ○ |
| C-006 | StartupChunkDependenciesPluginが正しいオプションで適用 | E-01 (L43-46) | ○ |
| C-007 | thisCompilationフックにタップ | E-01 (L47) | ○ |
| C-008 | isEnabledForChunk正常動作 | E-01 (L53-59) | ○ |
| C-009 | entryOptionsがundefinedの場合globalChunkLoadingが使用 | E-01 (L54-58) | ○ |
| C-010 | 同一チャンクに対するhandler重複防止 | E-01 (L62-69: `onceForChunkSet`) | ○ |
| C-011 | ensureChunkHandlersフックでgetChunkScriptFilename追加 | E-01 (L96-100) | ○ |
| C-012 | hmrDownloadUpdateHandlersフックで4つのランタイムグローバル追加 | E-01 (L101-109) | ○ |
| C-013 | hmrDownloadManifestフックでgetUpdateManifestFilename追加 | E-01 (L110-115) | ○ |
| C-014 | isEnabledForChunkがfalseの場合handler処理スキップ | E-01 (L70) | ○ |
| C-015 | NodeEnvironmentPlugin: options保持 | E-02 (L29-31) | ○ |
| C-016 | compiler.infrastructureLogger設定 | E-02 (L41-53) | ○ |
| C-017 | level未指定でデフォルト"info" | E-02 (L42: `infrastructureLogging.level \|\| "info"`) | ○ |
| C-018 | debug未指定でデフォルトfalse | E-02 (L43: `infrastructureLogging.debug \|\| false`) | ○ |
| C-019 | カスタムconsole使用 | E-02 (L44-52) | ○ |
| C-020 | inputFileSystemがCachedInputFileSystem | E-02 (L54) | ○ |
| C-021 | outputFileSystemがfs | E-02 (L58) | ○ |
| C-022 | intermediateFileSystemがfs | E-02 (L59) | ○ |
| C-023 | watchFileSystemがNodeWatchFileSystem | E-02 (L60) | ○ |
| C-024 | beforeRunフックでpurge呼び出し | E-02 (L61-68) | ○ |
| C-025 | inputFileSystem不一致でpurgeスキップ | E-02 (L62-63: `compiler.inputFileSystem === inputFileSystem`) | ○ |
| C-026 | purge関数不在時のスキップ | E-02 (L64: `inputFileSystem.purge`) | ○ |
| C-027 | NodeSourcePlugin: 空applyメソッド | E-03 (L16: `apply(compiler) {}`) | ○ |
| C-028 | NodeTargetPlugin: デフォルトtype=node-commonjs | E-04 (L79: `constructor(type = "node-commonjs")`) | ○ |
| C-029 | NodeTargetPlugin: カスタム型保持 | E-04 (L79-82) | ○ |
| C-030 | ExternalsPluginがbuiltinsリストで適用 | E-04 (L90-98) | ○ |
| C-031 | dependency.category=commonjsでnode-commonjs返却 | E-04 (L93-95) | ○ |
| C-032 | dependency.category非commonjsでthis.type返却 | E-04 (L97) | ○ |
| C-033 | builtinsリストにNode.js標準モジュール含有 | E-04 (L13-72) | ○ |
| C-034 | builtinsに/^node:/正規表現含有 | E-04 (L68) | ○ |
| C-035 | builtinsにpnpapi含有 | E-04 (L72) | ○ |
| C-036 | NodeTemplatePlugin: デフォルトオプション | E-05 (L22: `constructor(options = {})`) | ○ |
| C-037 | NodeTemplatePlugin: asyncChunkLoadingオプション保持 | E-05 (L22-25) | ○ |
| C-038 | asyncChunkLoading=trueでchunkLoading=async-node | E-05 (L33-34) | ○ |
| C-039 | asyncChunkLoading=falseでchunkLoading=require | E-05 (L33-35) | ○ |
| C-040 | CommonJsChunkFormatPlugin適用 | E-05 (L37) | ○ |
| C-041 | EnableChunkLoadingPlugin適用 | E-05 (L38) | ○ |
| C-042 | NodeWatchFileSystem: inputFileSystem保持 | E-06 (L23-24) | ○ |
| C-043 | watcherOptionsデフォルト値 | E-06 (L26-28) | ○ |
| C-044 | Watchpackインスタンス生成 | E-06 (L30) | ○ |
| C-045 | files非イテラブルでエラー | E-06 (L43-45) | ○ |
| C-046 | directories非イテラブルでエラー | E-06 (L46-48) | ○ |
| C-047 | missing非イテラブルでエラー | E-06 (L49-51) | ○ |
| C-048 | callback非関数でエラー | E-06 (L52-54) | ○ |
| C-049 | startTime非数値でtruthyの場合エラー | E-06 (L55-57) | ○ |
| C-050 | options非オブジェクトでエラー | E-06 (L58-60) | ○ |
| C-051 | callbackUndelayed非関数でtruthyの場合エラー | E-06 (L61-63) | ○ |
| C-052 | 有効な引数でwatch正常開始 | E-06 (L64-115) | ○ |
| C-053 | callbackUndelayed指定時changeイベント登録 | E-06 (L67-69) | ○ |
| C-054 | callbackUndelayed未指定時changeイベント未登録 | E-06 (L67) | ○ |
| C-055 | startTime=undefinedでバリデーション通過 | E-06 (L55: `typeof startTime !== "number" && startTime`) | ○ |
| C-056 | startTime=0でバリデーション通過 | E-06 (L55) | ○ |
| C-057 | 古いwatcherのclose | E-06 (L117-119) | ○ |
| C-058 | 新Watchpackインスタンス生成 | E-06 (L65) | ○ |
| C-059 | aggregatedイベントでcallback呼び出し | E-06 (L84-112) | ○ |
| C-060 | aggregatedイベントでpurge呼び出し | E-06 (L96-103) | ○ |
| C-061 | purge不在でもaggregatedイベント処理 | E-06 (L96: `if (fs && fs.purge)`) | ○ |
| C-062 | close()でwatcher=null | E-06 (L121-125) | ○ |
| C-063 | watcher=null時のclose安全処理 | E-06 (L122: `if (this.watcher)`) | ○ |
| C-064 | pause()呼び出し | E-06 (L127-130) | ○ |
| C-065 | watcher=null時のpause安全処理 | E-06 (L128: `if (this.watcher)`) | ○ |
| C-066 | getInfoの返却値 | E-06 (L170-193) | ○ |
| C-067 | getInfoでpurge呼び出し | E-06 (L174-185) | ○ |
| C-068 | getAggregatedRemovals非推奨動作 | E-06 (L132-145) | △ |
| C-069 | getAggregatedChanges非推奨動作 | E-06 (L146-159) | △ |
| C-070 | getFileTimeInfoEntries非推奨動作 | E-06 (L160-163) | △ |
| C-071 | getContextTimeInfoEntries非推奨動作 | E-06 (L165-168) | △ |
| C-072 | ReadFileChunkLoadingRuntimeModule初期化 | E-07 (L31-35) | ○ |
| C-073 | _generateBaseUri: baseUri指定時 | E-07 (L45-48) | ○ |
| C-074 | _generateBaseUri: rootOutputDirあり | E-07 (L50-54) | ○ |
| C-075 | _generateBaseUri: rootOutputDir空 | E-07 (L50-54) | ○ |
| C-076 | generate: withBaseURI=true | E-07 (L66, L104-106) | ○ |
| C-077 | generate: withBaseURI=false | E-07 (L104-106) | ○ |
| C-078 | generate: withLoading=true | E-07 (L73-75, L154-206) | ○ |
| C-079 | generate: withLoading=false | E-07 (L154, L206) | ○ |
| C-080 | generate: withHmr=true | E-07 (L76-78, L215-252) | ○ |
| C-081 | generate: withHmr=false | E-07 (L215, L253) | ○ |
| C-082 | generate: withHmrManifest=true | E-07 (L79-81, L255-281) | ○ |
| C-083 | generate: withHmrManifest=false | E-07 (L255, L281) | ○ |
| C-084 | generate: withExternalInstallChunk=true | E-07 (L67-69, L208-212) | ○ |
| C-085 | generate: withOnChunkLoad=true | E-07 (L70-72, L120-127) | ○ |
| C-086 | generate: initialChunkIds | E-07 (L84, L110-118) | ○ |
| C-087 | generate: stateExpression(HMR) | E-07 (L99-101) | ○ |
| C-088 | RequireChunkLoadingRuntimeModule初期化 | E-08 (L31-35) | ○ |
| C-089 | _generateBaseUri: baseUri指定時 | E-08 (L45-48) | ○ |
| C-090 | _generateBaseUri: rootOutputDir!="./""時 | E-08 (L50-54) | ○ |
| C-091 | _generateBaseUri: rootOutputDir="./"時 | E-08 (L50-54) | ○ |
| C-092 | generate: requireベースローディング | E-08 (L73-75, L148-181) | ○ |
| C-093 | generate: requireベースHMR | E-08 (L76-78, L190-214) | ○ |
| C-094 | generate: HMRマニフェスト(require版) | E-08 (L79-81, L217-234) | ○ |
| C-095 | generate: initialChunkIds値1 | E-08 (L84, L110-118) | ○ |
| C-096 | generate: stateExpression(require版) | E-08 (L99-101) | ○ |
| C-097 | generate: externalInstallChunk(require版) | E-08 (L67-69, L183-188) | ○ |
| C-098 | ReadFileCompileAsyncWasmPlugin: デフォルトimport=false | E-09 (L27: `{ import: useImport = false } = {}`) | ○ |
| C-099 | ReadFileCompileAsyncWasmPlugin: import=true | E-09 (L27-29) | ○ |
| C-100 | thisCompilationフックタップ | E-09 (L38) | ○ |
| C-101 | AsyncWasmLoadingRuntimeModule追加 | E-09 (L99-118) | ○ |
| C-102 | wasmLoading不一致でスキップ | E-09 (L44-51, L102) | ○ |
| C-103 | WASMモジュール不在でスキップ | E-09 (L103-110) | ○ |
| C-104 | import=trueでimport()ベースコード | E-09 (L56-73) | ○ |
| C-105 | import=falseでrequire()ベースコード | E-09 (L74-97) | ○ |
| C-106 | entryOptions個別wasmLoading設定 | E-09 (L44-51) | ○ |
| C-107 | ReadFileCompileWasmPlugin: デフォルトオプション | E-10 (L28: `constructor(options = {})`) | ○ |
| C-108 | ReadFileCompileWasmPlugin: mangleImports保持 | E-10 (L28-30) | ○ |
| C-109 | thisCompilationフックタップ | E-10 (L39) | ○ |
| C-110 | WasmChunkLoadingRuntimeModule追加 | E-10 (L100-122) | ○ |
| C-111 | wasmLoading不一致でスキップ | E-10 (L45-52, L103) | ○ |
| C-112 | 同期WASMモジュール不在でスキップ | E-10 (L104-111) | ○ |
| C-113 | import=trueでimport()ベースコード | E-10 (L57-74) | ○ |
| C-114 | import=falseでrequire()ベースコード | E-10 (L75-98) | ○ |
| C-115 | mangleImportsの引渡し | E-10 (L118) | ○ |
| C-116 | nodeConsole: colors=falseでログ出力 | E-11 (L37-50, L107) | ○ |
| C-117 | nodeConsole: colors=trueで色コード付き出力 | E-11 (L37-49) | ○ |
| C-118 | log関数の基本動作 | E-11 (L107) | ○ |
| C-119 | debug関数の出力 | E-11 (L109) | ○ |
| C-120 | info関数の出力 | E-11 (L113) | ○ |
| C-121 | warn関数の出力 | E-11 (L115) | ○ |
| C-122 | error関数の出力 | E-11 (L117) | ○ |
| C-123 | logTime関数の出力 | E-11 (L119-123) | ○ |
| C-124 | groupでインデント増加 | E-11 (L125-132) | ○ |
| C-125 | groupメッセージの<->プレフィックス | E-11 (L92-96) | ○ |
| C-126 | groupCollapsedで出力抑制 | E-11 (L134-137, L79) | ○ |
| C-127 | groupCollapsedの<+>プレフィックス | E-11 (L99-103) | ○ |
| C-128 | groupEndでインデント復元 | E-11 (L139-145) | ○ |
| C-129 | groupCollapsed後のgroupEndで抑制解除 | E-11 (L140-141) | ○ |
| C-130 | groupEnd境界値: indent空でcollapsed=0 | E-11 (L140-144) | ○ |
| C-131 | ネストgroupでインデント累積 | E-11 (L130) | ○ |
| C-132 | collapsed状態でgroupするとcollapsedインクリメント | E-11 (L127-129) | ○ |
| C-133 | clear: appendOnly=falseでconsole.clear実行 | E-11 (L151-161) | △ |
| C-134 | clear: appendOnly=trueでfalsy | E-11 (L154: `!appendOnly && console.clear`) | ○ |
| C-135 | status: appendOnly=trueで<s>プレフィックス | E-11 (L163-164) | ○ |
| C-136 | status: name=undefinedでクリア | E-11 (L167-169) | ○ |
| C-137 | status: [webpack.Progress]プレフィックス処理 | E-11 (L170-175) | ○ |
| C-138 | status: [webpack.Progress]名前のみ | E-11 (L176-178) | ○ |
| C-139 | status: その他のname | E-11 (L179-181) | ○ |
| C-140 | indent: 空文字列ガード | E-11 (L38) | ○ |
| C-141 | indent: colors=falseでの改行インデント | E-11 (L49) | ○ |
| C-142 | indent: colors=trueでのカラーインデント | E-11 (L40-47) | ○ |
| C-143 | writeStatusMessage: メッセージ書き込み | E-11 (L59-67) | ○ |
| C-144 | writeStatusMessage: undefined時スキップ | E-11 (L60) | ○ |
| C-145 | clearStatusMessage: hasStatusMessage=trueでクリア | E-11 (L52-57) | ○ |
| C-146 | clearStatusMessage: hasStatusMessage=falseでスキップ | E-11 (L53) | ○ |
| C-147 | status: falsy値フィルタ | E-11 (L166) | ○ |
| C-148 | writeStatusMessage: stream.columns未定義時デフォルト40 | E-11 (L61: `stream.columns \|\| 40`) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-068〜C-071**: `util.deprecate`でラップされた関数の非推奨警告挙動は、ソースコード上で`util.deprecate`の呼び出しは確認できるが、実際の警告メッセージの出力タイミングや形式は Node.js ランタイムの挙動に依存する。テスト時には `process.on('warning')` でキャプチャする必要がある。
  - 候補：Node.js `util.deprecate` ドキュメント / webpack 既存テスト / Node.js ランタイムテスト
- **C-133**: `console.clear`の存在確認がランタイム環境に依存する。ブラウザ環境とNode.js環境で挙動が異なる可能性がある。
  - 候補：Node.js `console` ドキュメント / テスト環境仕様

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - コンストラクタ初期化テスト（C-001〜C-003, C-015, C-028〜C-029, C-036〜C-037, C-042〜C-044, C-072, C-088, C-098〜C-099, C-107〜C-108）：単純な代入処理でリスクが低い
- **1: 中リスク** - プラグインapplyメソッドのフック登録テスト（C-004〜C-014, C-016〜C-026, C-030〜C-035, C-038〜C-041, C-076〜C-087, C-092〜C-097, C-100〜C-106, C-109〜C-115）：モック設計の適切性がテスト品質に影響する
- **1: 中リスク** - NodeWatchFileSystem引数バリデーション（C-045〜C-051）：ソースコード上の条件式が明確だが、境界条件のカバレッジに注意
- **1: 中リスク** - nodeConsole系テスト（C-116〜C-148）：内部状態（currentIndent, currentCollapsed, currentStatusMessage）の管理が複雑で、テスト順序による影響に注意
- **2: 高リスク** - 非推奨API系（C-068〜C-071）：Node.jsランタイム依存のため環境差異のリスクあり

## 6) レビュアーチェックリスト（最小）
- [ ] CommonJsChunkLoadingPluginのasyncChunkLoading分岐テスト（C-004, C-005）のモック設計が適切か
- [ ] NodeWatchFileSystemの引数バリデーション（C-045〜C-051）がソースコードの条件式と正確に対応しているか
- [ ] ReadFileChunkLoadingRuntimeModuleとRequireChunkLoadingRuntimeModuleのgenerate()テスト（C-076〜C-087, C-092〜C-097）がランタイム要件の全組み合わせをカバーしているか
- [ ] nodeConsole系テスト（C-116〜C-148）の内部状態管理テストが独立して実行可能か（テスト間の状態干渉がないか）
- [ ] 非推奨API（getAggregatedRemovals等）のテスト方法がCI環境で安定して動作するか
- [ ] ReadFileCompileAsyncWasmPlugin / ReadFileCompileWasmPluginのimport分岐テスト（C-104〜C-105, C-113〜C-114）が生成コード文字列を正確に検証しているか
