---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 96
  claims_with_evidence: 93
  claims_without_evidence: 3
confidence_derived: 0.97
---

# 根拠レポート：lib-dependency 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：93 / 96、根拠なし：3
- 優先レビュー（高）
  1. **C-32 (UT-DEP-032)**: createIgnoredModuleのmemoize動作はgetIgnoredModuleの実装に依存するが、memoize関数の具体的動作は外部ユーティリティ
  2. **C-92 (UT-DEP-092)**: _stringifiedGroupOptionsのキャッシュ動作は実装の内部最適化であり、外部からの検証が困難
  3. **C-87 (UT-DEP-087)**: set chunkNameの同値比較による分岐は実装詳細であり、_stringifiedGroupOptionsの直接検証が必要

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

- E-01: `lib/Dependency.js` - Dependencyクラス定義（行100-338）
- E-02: `lib/Dependency.js` - 静的プロパティ・メソッド定義（行341-388）
- E-03: `lib/Dependency.js` - 非推奨プロパティ定義（行346-386）
- E-04: `lib/DependencyTemplate.js` - DependencyTemplateクラス定義（行55-69）
- E-05: `lib/DependencyTemplates.js` - DependencyTemplatesクラス定義（行15-65）
- E-06: `lib/DependenciesBlock.js` - DependenciesBlockクラス定義（行27-116）
- E-07: `lib/AsyncDependenciesBlock.js` - AsyncDependenciesBlockクラス定義（行21-111）
- E-08: `lib/AsyncDependenciesBlock.js` - 非推奨プロパティ定義（行115-126）
- E-09: `lib/Dependency.js` - getIgnoredModule memoize関数（行92-98）
- E-10: `lib/DependencyTemplates.js` - コンストラクタのデフォルトハッシュ値（行19-26）

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-DEP-001) | Dependency constructorの初期値検証 | E-01 (行101-124) | ○ |
| C-02 (UT-DEP-002) | get typeが"unknown"を返す | E-01 (行129-131) | ○ |
| C-03 (UT-DEP-003) | get categoryが"unknown"を返す | E-01 (行136-138) | ○ |
| C-04 (UT-DEP-004) | get locのstart生成 | E-01 (行143-163) | ○ |
| C-05 (UT-DEP-005) | get locのstart/end生成 | E-01 (行143-163) | ○ |
| C-06 (UT-DEP-006) | get locのname生成 | E-01 (行155-156) | ○ |
| C-07 (UT-DEP-007) | get locのindex生成 | E-01 (行158-159) | ○ |
| C-08 (UT-DEP-008) | get locのキャッシュ動作 | E-01 (行144) | ○ |
| C-09 (UT-DEP-009) | get locのデフォルト空オブジェクト | E-01 (行143-163) | ○ |
| C-10 (UT-DEP-010) | set locのstart/end設定 | E-01 (行165-183) | ○ |
| C-11 (UT-DEP-011) | set locのname/index設定 | E-01 (行180-182) | ○ |
| C-12 (UT-DEP-012) | set locのstartが非オブジェクト | E-01 (行166-172) | ○ |
| C-13 (UT-DEP-013) | set locのendがnull | E-01 (行173-179) | ○ |
| C-14 (UT-DEP-014) | set locの空オブジェクト | E-01 (行165-183) | ○ |
| C-15 (UT-DEP-015) | setLocの4引数設定 | E-01 (行191-199) | ○ |
| C-16 (UT-DEP-016) | setLocとget locの連携 | E-01 (行191-199, 143-163) | ○ |
| C-17 (UT-DEP-017) | setLocのキャッシュクリア | E-01 (行198) | ○ |
| C-18 (UT-DEP-018) | getContextがundefinedを返す | E-01 (行204-206) | ○ |
| C-19 (UT-DEP-019) | getResourceIdentifierがnullを返す | E-01 (行211-213) | ○ |
| C-20 (UT-DEP-020) | couldAffectReferencingModuleがTRANSITIVEを返す | E-01 (行218-220) | ○ |
| C-21 (UT-DEP-021) | getReferenceがErrorをスロー | E-01 (行228-232) | ○ |
| C-22 (UT-DEP-022) | getReferencedExportsがEXPORTS_OBJECT_REFERENCEDを返す | E-01 (行240-242), E-02 (行343) | ○ |
| C-23 (UT-DEP-023) | getConditionがnullを返す | E-01 (行248-250) | ○ |
| C-24 (UT-DEP-024) | getExportsがundefinedを返す | E-01 (行257-259) | ○ |
| C-25 (UT-DEP-025) | getWarningsがnullを返す | E-01 (行266-268) | ○ |
| C-26 (UT-DEP-026) | getErrorsがnullを返す | E-01 (行275-277) | ○ |
| C-27 (UT-DEP-027) | updateHashが空実装 | E-01 (行285) | ○ |
| C-28 (UT-DEP-028) | getNumberOfIdOccurrencesが1を返す | E-01 (行291-293) | ○ |
| C-29 (UT-DEP-029) | getModuleEvaluationSideEffectsStateがtrueを返す | E-01 (行299-301) | ○ |
| C-30 (UT-DEP-030) | createIgnoredModuleがRawModuleを返す | E-01 (行307-309), E-09 | ○ |
| C-31 (UT-DEP-031) | createIgnoredModuleのsideEffectFreeフラグ | E-09 (行96) | ○ |
| C-32 (UT-DEP-032) | createIgnoredModuleのmemoize動作 | E-09, **memoize実装は外部** | △ |
| C-33 (UT-DEP-033) | serializeの書き込み順序 | E-01 (行314-323) | ○ |
| C-34 (UT-DEP-034) | deserializeの読み込み復元 | E-01 (行328-337) | ○ |
| C-35 (UT-DEP-035) | serialize/deserializeラウンドトリップ | E-01 (行314-337) | ○ |
| C-36 (UT-DEP-036) | NO_EXPORTS_REFERENCEDが空配列 | E-02 (行341) | ○ |
| C-37 (UT-DEP-037) | EXPORTS_OBJECT_REFERENCEDが[[]] | E-02 (行343) | ○ |
| C-38 (UT-DEP-038) | TRANSITIVEがSymbol | E-01 (行90), E-02 (行388) | ○ |
| C-39 (UT-DEP-039) | isLowPriorityDependencyがInfinityでtrue | E-02 (行372-373) | ○ |
| C-40 (UT-DEP-040) | isLowPriorityDependencyが有限値でfalse | E-02 (行372-373) | ○ |
| C-41 (UT-DEP-041) | 非推奨module getterがError | E-03 (行346-355) | ○ |
| C-42 (UT-DEP-042) | 非推奨module setterがError | E-03 (行357-365) | ○ |
| C-43 (UT-DEP-043) | 非推奨disconnect getterがError | E-03 (行376-386) | ○ |
| C-44 (UT-DEP-044) | DependencyTemplateのインスタンス生成 | E-04 (行55) | ○ |
| C-45 (UT-DEP-045) | applyがAbstractMethodErrorをスロー | E-04 (行64-68) | ○ |
| C-46 (UT-DEP-046) | DependencyTemplatesのデフォルト初期化 | E-05 (行19-26), E-10 | ○ |
| C-47 (UT-DEP-047) | カスタムハッシュ関数指定 | E-05 (行19) | ○ |
| C-48 (UT-DEP-048) | getで登録済みテンプレート取得 | E-05 (行32-34) | ○ |
| C-49 (UT-DEP-049) | getで未登録キーはundefined | E-05 (行32-34) | ○ |
| C-50 (UT-DEP-050) | setでテンプレート登録 | E-05 (行41-43) | ○ |
| C-51 (UT-DEP-051) | setで上書き登録 | E-05 (行41-43) | ○ |
| C-52 (UT-DEP-052) | updateHashでハッシュ更新 | E-05 (行49-53) | ○ |
| C-53 (UT-DEP-053) | 異なるpartで異なるハッシュ | E-05 (行49-53) | ○ |
| C-54 (UT-DEP-054) | 空文字列でのハッシュ更新 | E-05 (行49-53) | ○ |
| C-55 (UT-DEP-055) | getHashで初期値取得 | E-05 (行55-57), E-10 | ○ |
| C-56 (UT-DEP-056) | updateHash後のgetHash | E-05 (行49-57) | ○ |
| C-57 (UT-DEP-057) | cloneの基本動作 | E-05 (行59-64) | ○ |
| C-58 (UT-DEP-058) | cloneの独立性 | E-05 (行60) | ○ |
| C-59 (UT-DEP-059) | cloneのハッシュ関数引き継ぎ | E-05 (行60) | ○ |
| C-60 (UT-DEP-060) | DependenciesBlock constructorの初期値 | E-06 (行28-35) | ○ |
| C-61 (UT-DEP-061) | getRootBlockが自身を返す | E-06 (行37-42) | ○ |
| C-62 (UT-DEP-062) | getRootBlockが祖先を返す | E-06 (行37-42) | ○ |
| C-63 (UT-DEP-063) | getRootBlockの1段階親 | E-06 (行37-42) | ○ |
| C-64 (UT-DEP-064) | addBlockの追加と親設定 | E-06 (行50-53) | ○ |
| C-65 (UT-DEP-065) | addBlockの複数追加 | E-06 (行50-53) | ○ |
| C-66 (UT-DEP-066) | addDependencyの追加 | E-06 (行60-62) | ○ |
| C-67 (UT-DEP-067) | addDependencyの複数追加 | E-06 (行60-62) | ○ |
| C-68 (UT-DEP-068) | removeDependencyの削除 | E-06 (行68-73) | ○ |
| C-69 (UT-DEP-069) | removeDependencyの存在しない要素 | E-06 (行69-70) | ○ |
| C-70 (UT-DEP-070) | removeDependencyの重複要素 | E-06 (行69) | ○ |
| C-71 (UT-DEP-071) | clearDependenciesAndBlocksのクリア | E-06 (行79-82) | ○ |
| C-72 (UT-DEP-072) | clearDependenciesAndBlocksの空状態 | E-06 (行79-82) | ○ |
| C-73 (UT-DEP-073) | updateHashの委譲 | E-06 (行89-96) | ○ |
| C-74 (UT-DEP-074) | updateHashの空状態 | E-06 (行89-96) | ○ |
| C-75 (UT-DEP-075) | serializeの書き込み | E-06 (行101-104) | ○ |
| C-76 (UT-DEP-076) | deserializeの復元と親設定 | E-06 (行109-115) | ○ |
| C-77 (UT-DEP-077) | deserializeの空データ | E-06 (行109-115) | ○ |
| C-78 (UT-DEP-078) | AsyncDependenciesBlockの文字列初期化 | E-07 (行27-46) | ○ |
| C-79 (UT-DEP-079) | AsyncDependenciesBlockのオブジェクト初期化 | E-07 (行27-46) | ○ |
| C-80 (UT-DEP-080) | AsyncDependenciesBlockのnull初期化 | E-07 (行30-33) | ○ |
| C-81 (UT-DEP-081) | circular: falseの明示指定維持 | E-07 (行34-37) | ○ |
| C-82 (UT-DEP-082) | 親クラスDependenciesBlockの初期化 | E-07 (行28), E-06 (行28-35) | ○ |
| C-83 (UT-DEP-083) | get chunkNameの値取得 | E-07 (行51-53) | ○ |
| C-84 (UT-DEP-084) | get chunkNameのundefined | E-07 (行51-53) | ○ |
| C-85 (UT-DEP-085) | set chunkNameの更新 | E-07 (行59-64) | ○ |
| C-86 (UT-DEP-086) | set chunkNameのキャッシュリセット | E-07 (行62-63) | ○ |
| C-87 (UT-DEP-087) | set chunkNameの同値でキャッシュ維持 | E-07 (行60-61) | △ |
| C-88 (UT-DEP-088) | get circularがtrue | E-07 (行69-71) | ○ |
| C-89 (UT-DEP-089) | get circularがfalse | E-07 (行69-71) | ○ |
| C-90 (UT-DEP-090) | updateHashのオーバーライド | E-07 (行78-88) | ○ |
| C-91 (UT-DEP-091) | updateHashのchunkGroup null | E-07 (行83-86) | ○ |
| C-92 (UT-DEP-092) | updateHashのキャッシュ動作 | E-07 (行80-81) | △ |
| C-93 (UT-DEP-093) | serializeのオーバーライド | E-07 (行93-99) | ○ |
| C-94 (UT-DEP-094) | deserializeのオーバーライド | E-07 (行104-110) | ○ |
| C-95 (UT-DEP-095) | 非推奨module getterがError | E-08 (行115-120) | ○ |
| C-96 (UT-DEP-096) | 非推奨module setterがError | E-08 (行121-125) | ○ |

## 4) 不足情報（Unknown / Missing）
- **C-32**: `createIgnoredModule`のmemoize動作は`lib/util/memoize.js`の実装に依存しており、lib-dependencyモジュール外のコードである。memoize関数が同一インスタンスを返すことの保証は外部依存。
  - 候補：`lib/util/memoize.js`の実装確認 / memoize関数の単体テスト確認
- **C-87**: `set chunkName`の同値比較（`this.groupOptions.name !== value`）による`_stringifiedGroupOptions`の維持は、内部実装の最適化パスであり、外部から`_stringifiedGroupOptions`の値を直接検証する手段が限定される。
  - 候補：プライベートプロパティへのアクセスが必要 / updateHashの呼び出し結果で間接的に検証
- **C-92**: `_stringifiedGroupOptions`のキャッシュ動作は内部最適化であり、2回目の呼び出しでJSON.stringifyが再実行されないことの検証は、spy/mockなしでは外部からの直接確認が困難。
  - 候補：JSON.stringifyのspy / パフォーマンステスト

## 5) リスクフラグ（レビュー観点）
- **リスク0（低リスク）**: 大部分のテストケース（93/96）はソースコードに直接対応する根拠があり、信頼性が高い
- **リスク1（中リスク）**: C-32, C-87, C-92 はmemoize/キャッシュの内部最適化に関するテストケースであり、外部ユーティリティまたはプライベートプロパティへの依存がある。テスト実装時にspy/mockの利用を検討する必要がある
- **リスク0（低リスク）**: 非推奨プロパティのエラー検証（C-41, C-42, C-43, C-95, C-96）はObject.definePropertyで明確に定義されており、根拠が明確

## 6) レビュアーチェックリスト（最小）
- [ ] Dependency.jsのloc getter/setterの条件分岐が全てカバーされているか確認
- [ ] serialize/deserializeのラウンドトリップ検証が全クラスで行われているか確認
- [ ] AsyncDependenciesBlockのconstructor引数パターン（string/object/null）が網羅されているか確認
- [ ] DependencyTemplates.cloneの独立性検証が双方向（元→クローン、クローン→元）で行われているか確認
- [ ] 非推奨プロパティ（module, disconnect）のエラーメッセージが実装と一致しているか確認
- [ ] DependenciesBlock.removeDependencyのindexOf === -1の分岐が検証されているか確認
- [ ] memoize関連テスト（C-32）の実装可能性を検討（lib/util/memoize.jsの動作に依存）
