---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 48
  claims_with_evidence: 46
  claims_without_evidence: 2
confidence_derived: 0.96
---

# 根拠レポート：webworker 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：46 / 48、根拠なし：2
- 優先レビュー（高）
  1. **C-04（WebWorkerTemplatePlugin null入力）**：null入力時の挙動はソースコードに明示的なガードがないため推測
  2. **C-47（ImportScriptsChunkLoadingPlugin null入力）**：同上、null入力時の挙動は推測

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

- E-01: `lib/webworker/WebWorkerTemplatePlugin.js` - WebWorkerTemplatePluginクラス定義（行13-24）
- E-02: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` - ImportScriptsChunkLoadingPluginクラス定義（行18-108）
- E-03: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` - ImportScriptsChunkLoadingRuntimeModuleクラス定義（行26-229）
- E-04: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行25-28 - StartupChunkDependenciesPluginの生成と適用
- E-05: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行29 - thisCompilationフックへのtap登録
- E-06: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行35-42 - isEnabledForChunk内部関数
- E-07: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行44 - onceForChunkSet（WeakSet）
- E-08: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行49-65 - handler内部関数
- E-09: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行53-55 - trustedTypes判定によるwithCreateScriptUrl
- E-10: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行66-81 - 5つのruntimeRequirementInTreeフック登録
- E-11: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行82-88 - ensureChunkHandlers追加ハンドラ
- E-12: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行89-98 - hmrDownloadUpdateHandlers追加ハンドラ
- E-13: `lib/webworker/ImportScriptsChunkLoadingPlugin.js` 行99-105 - hmrDownloadManifest追加ハンドラ
- E-14: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行31-37 - constructorの実装
- E-15: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行32 - superクラス呼び出し（"importScripts chunk loading", RuntimeModule.STAGE_ATTACH）
- E-16: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行44-65 - _generateBaseUriメソッド
- E-17: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行46-48 - baseUri設定ありの分岐
- E-18: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行49-64 - baseUri設定なしの分岐（self.location使用）
- E-19: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行70-228 - generateメソッド
- E-20: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行73 - withBaseURI判定
- E-21: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行74-76 - withLoading判定
- E-22: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行77-79 - withCallback判定
- E-23: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行80-82 - withHmr判定
- E-24: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行83-85 - withHmrManifest判定
- E-25: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行97-99 - stateExpression（HMR有効時）
- E-26: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行103-104 - withBaseURIの条件分岐
- E-27: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行118-141 - installChunk関数の条件分岐
- E-28: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行142-174 - チャンクローディング（withLoading分岐）
- E-29: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行156-160 - createScriptUrl有無の分岐
- E-30: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行176-209 - HMRコード生成
- E-31: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行211-227 - HMRマニフェストダウンロードコード生成
- E-32: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行216 - fetch API未サポートエラー
- E-33: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行220 - response.status === 404チェック
- E-34: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行203 - HMR更新チャンク失敗エラー
- E-35: `lib/webworker/ImportScriptsChunkLoadingRuntimeModule.js` 行92-95 - hasJsMatcher、initialChunkIdsの取得
- E-36: `lib/RuntimeModule.js` 行235 - STAGE_ATTACH = 10の定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | WebWorkerTemplatePlugin.applyがchunkLoadingを"import-scripts"に設定する | E-01 (行20) | ○ |
| C-02 | ArrayPushCallbackChunkFormatPluginが適用される | E-01 (行21) | ○ |
| C-03 | EnableChunkLoadingPluginが"import-scripts"で適用される | E-01 (行22) | ○ |
| C-04 | WebWorkerTemplatePlugin.applyにnullを渡すとエラー | **根拠なし** | △ |
| C-05 | StartupChunkDependenciesPluginが正しいオプションで適用される | E-04 | ○ |
| C-06 | thisCompilationフックにハンドラが登録される | E-05 | ○ |
| C-07 | isEnabledForChunkがchunkLoading="import-scripts"でtrueを返す | E-06 (行41) | ○ |
| C-08 | isEnabledForChunkがentryOptionsのchunkLoadingがundefinedの場合にglobalChunkLoadingを使用する | E-06 (行37-40) | ○ |
| C-09 | entryOptionsがnullの場合にglobalChunkLoadingを使用する | E-06 (行38) | ○ |
| C-10 | chunkLoadingが"import-scripts"以外の場合にfalseを返す | E-06 (行41) | ○ |
| C-11 | handler初回呼び出し時にRuntimeModuleが追加される | E-08 (行56-64) | ○ |
| C-12 | trustedTypes有効時にcreateScriptUrlがsetに追加される | E-09 (行58-60) | ○ |
| C-13 | 同一チャンクの2回目呼び出しでは早期リターンする | E-07, E-08 (行50-51) | ○ |
| C-14 | isEnabledForChunkがfalseの場合にRuntimeModuleが追加されない | E-08 (行52) | ○ |
| C-15 | ensureChunkHandlersハンドラでpublicPathとgetChunkScriptFilenameが追加される | E-11 (行86-87) | ○ |
| C-16 | ensureChunkHandlersハンドラでisEnabledForChunkがfalseの場合にスキップ | E-11 (行85) | ○ |
| C-17 | hmrDownloadUpdateHandlersハンドラで5つのランタイム要件が追加される | E-12 (行93-97) | ○ |
| C-18 | hmrDownloadManifestハンドラでpublicPathとgetUpdateManifestFilenameが追加される | E-13 (行103-104) | ○ |
| C-19 | 5つのruntimeRequirementInTreeフックにhandlerが登録される | E-10 (行66-80) | ○ |
| C-20 | constructorでruntimeRequirementsと_withCreateScriptUrlが設定される | E-14 (行34-36) | ○ |
| C-21 | superクラスが正しい名前とステージで呼び出される | E-15, E-36 | ○ |
| C-22 | withCreateScriptUrl=trueが正しく設定される | E-14 (行36) | ○ |
| C-23 | baseUri設定ありの場合にJSON.stringify済みbaseUriコードが生成される | E-17 (行47) | ○ |
| C-24 | baseUri未設定の場合にself.locationベースのコードが生成される | E-18 (行62-64) | ○ |
| C-25 | entryOptionsが空オブジェクトの場合にself.locationベースのコードが生成される | E-16 (行46条件) | ○ |
| C-26 | rootOutputDirが空文字列の場合に空パスが生成される | E-18 (行63) | ○ |
| C-27 | baseURIランタイム要件がある場合に_generateBaseUriが呼ばれる | E-26 (行104) | ○ |
| C-28 | baseURIランタイム要件がない場合に"// no baseURI"が生成される | E-26 (行104) | ○ |
| C-29 | ensureChunkHandlersランタイム要件がある場合にチャンクローディングコードが生成される | E-28 (行142-174) | ○ |
| C-30 | withCreateScriptUrl=trueの場合にcreateScriptUrlを使用したコードが生成される | E-29 (行157-158) | ○ |
| C-31 | withCreateScriptUrl=falseの場合にcreateScriptUrlなしのコードが生成される | E-29 (行159) | ○ |
| C-32 | HMRダウンロードハンドラ有効時にloadUpdateChunk関数が生成される | E-30 (行178-208) | ○ |
| C-33 | HMRマニフェスト有効時にfetch APIコードが生成される | E-31 (行217-223) | ○ |
| C-34 | HMR要件なしの場合に"// no HMR"が生成される | E-19 (行209) | ○ |
| C-35 | HMRマニフェスト要件なしの場合に"// no HMR manifest"が生成される | E-19 (行226) | ○ |
| C-36 | chunkCallback要件がある場合にinstallChunk関数が生成される | E-27 (行118-141) | ○ |
| C-37 | withLoadingもwithCallbackもない場合にコメントが生成される | E-27 (行141), E-28 (行174) | ○ |
| C-38 | HMR有効時にstateExpressionが設定される | E-25 (行97-99) | ○ |
| C-39 | initialChunkIdsがinstalledChunksに反映される | E-35 (行95), E-19 (行108-116) | ○ |
| C-40 | 初期チャンクIDが空の場合に空オブジェクトで初期化される | E-19 (行108-116) | ○ |
| C-41 | chunkLoadingGlobalExprがoutputOptions.chunkLoadingGlobalから生成される | E-19 (行87-89) | ○ |
| C-42 | HMRマニフェストでresponse.status === 404チェックが生成される | E-33 | ○ |
| C-43 | HMRマニフェストでfetch API未サポートエラーが生成される | E-32 | ○ |
| C-44 | HMR更新チャンク失敗時のエラーコードが生成される | E-34 | ○ |
| C-45 | generate()がstring型の値を返す | E-19 (行103 Template.asString) | ○ |
| C-46 | hasJsMatcherがfalseの場合に最適化コードが生成される | E-28 (行166) | ○ |
| C-47 | ImportScriptsChunkLoadingPlugin.applyにnullを渡すとエラー | **根拠なし** | △ |
| C-48 | 全ランタイム要件同時設定で全コード断片が含まれる | E-19 (全体の条件分岐構造) | ○ |

## 4) 不足情報（Unknown / Missing）
- C-04, C-47: null入力時の挙動について、ソースコードに明示的なnullチェックやガード句が存在しない。JavaScriptの一般的な動作として、nullオブジェクトのプロパティアクセスでTypeErrorがスローされることは推測できるが、webpackプラグインシステムがこれを別途ハンドリングする可能性がある。
  - 候補：webpack本体のプラグインシステムのソースコード / webpackの公式テストケース / TypeScriptの型定義

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - WebWorkerTemplatePluginは非常にシンプルな委譲パターンであり、テストケースの正確性は高い
- 0: 低リスク - ImportScriptsChunkLoadingPluginの内部関数（isEnabledForChunk, handler）は直接テスト可能ではないため、結合テスト的なアプローチが必要になる可能性がある
- 1: 中リスク - ImportScriptsChunkLoadingRuntimeModule.generate()のテストは、compilation/chunk/chunkGraphのモック構築が複雑であり、テスト実装時に追加の調査が必要になる可能性がある
- 0: 低リスク - null入力テスト（C-04, C-47）は一般的なJavaScriptの動作に基づく推測であり、実際の挙動確認が必要

## 6) レビュアーチェックリスト（最小）
- [ ] WebWorkerTemplatePlugin.applyの3つの処理（chunkLoading設定、ArrayPushCallbackChunkFormatPlugin適用、EnableChunkLoadingPlugin適用）が全てカバーされているか確認
- [ ] ImportScriptsChunkLoadingPluginの内部関数isEnabledForChunkの全分岐（entryOptions有無、chunkLoading値の違い）がカバーされているか確認
- [ ] ImportScriptsChunkLoadingPluginのhandler関数のonceForChunkSet（重複防止）のテストケースが適切か確認
- [ ] ImportScriptsChunkLoadingRuntimeModule.generate()の条件分岐（withBaseURI, withLoading, withCallback, withHmr, withHmrManifest）の組み合わせが十分にカバーされているか確認
- [ ] _generateBaseUriのbaseUri有無による分岐がカバーされているか確認
- [ ] Trusted Types（withCreateScriptUrl）対応のテストケースが適切か確認
- [ ] テストケースの前提条件と入力値が実際のテスト実装時に再現可能か確認
