---
generated_at: 2026-03-01 06:20:00
metrics:
  claims_total: 36
  claims_with_evidence: 36
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：babel-plugin-transform-nullish-coalescing-operator 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：36 / 36、根拠なし：0
- 優先レビュー（高）
  1. **なし**：すべてのテストケースに根拠が存在します

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `packages/babel-plugin-transform-nullish-coalescing-operator/src/index.ts` - プラグインのメインソースコード
- E-02: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-loose/input.js` - looseモードの入力テスト
- E-03: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-loose/output.js` - looseモードの出力テスト
- E-04: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-in-function/input.js` - 関数内変換の入力テスト
- E-05: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-in-function/output.js` - 関数内変換の出力テスト
- E-06: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-in-default-param/input.js` - デフォルトパラメータ変換の入力テスト
- E-07: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-in-default-param/output.js` - デフォルトパラメータ変換の出力テスト
- E-08: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-in-default-destructuring/input.js` - デストラクチャリング変換の入力テスト
- E-09: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-in-default-destructuring/output.js` - デストラクチャリング変換の出力テスト
- E-10: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-many/input.js` - チェーン演算の入力テスト
- E-11: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-many/output.js` - チェーン演算の出力テスト
- E-12: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/undeclared/input.js` - 未宣言変数の入力テスト
- E-13: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/undeclared/output.js` - 未宣言変数の出力テスト
- E-14: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/logical-assignment/input.js` - 論理代入の入力テスト
- E-15: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/logical-assignment/output.js` - 論理代入の出力テスト
- E-16: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/runtime-semantics/exec.js` - ランタイムセマンティクステスト
- E-17: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-noDocumentAll/transform/input.js` - noDocumentAll変換の入力テスト
- E-18: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-noDocumentAll/transform/output.js` - noDocumentAll変換の出力テスト
- E-19: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-noDocumentAll/runtime-semantics/exec.js` - noDocumentAllランタイムテスト
- E-20: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-pureGetters/transform/input.js` - pureGetters変換の入力テスト
- E-21: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-pureGetters/transform/output.js` - pureGetters変換の出力テスト
- E-22: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-pureGetters/transform-in-default-param/input.js` - pureGettersデフォルトパラメータ入力テスト
- E-23: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-pureGetters/transform-in-default-param/output.js` - pureGettersデフォルトパラメータ出力テスト
- E-24: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-static-refs-in-default/input.js` - 静的参照デフォルト入力テスト
- E-25: `packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/nullish-coalescing/transform-static-refs-in-default/output.js` - 静的参照デフォルト出力テスト

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | プラグインが正しく初期化されること | E-01 (declare関数の実装) | ○ |
| C-02 | プラグイン名が正しく設定されること | E-01 (name: "transform-nullish-coalescing-operator") | ○ |
| C-03 | looseオプションがtrueの場合にnoDocumentAllがtrueになること | E-01 (noDocumentAll = api.assumption("noDocumentAll") ?? loose) | ○ |
| C-04 | looseオプションがfalseの場合にnoDocumentAllがfalseになること | E-01 (デフォルト値の実装) | ○ |
| C-05 | api.assumption('noDocumentAll')がtrueの場合の動作 | E-01, E-17, E-18 | ○ |
| C-06 | api.assumption('pureGetters')がtrueの場合の動作 | E-01, E-20, E-21 | ○ |
| C-07 | ??演算子が条件式に変換されること | E-01 (visitor.LogicalExpression), E-04, E-05 | ○ |
| C-08 | noDocumentAllがtrueの場合に簡略化された条件式が生成されること | E-01 (t.binaryExpression("!="...)), E-02, E-03 | ○ |
| C-09 | noDocumentAllがfalseの場合にstrictな条件式が生成されること | E-01 (t.logicalExpression("&&"...)), E-04, E-05 | ○ |
| C-10 | 左辺がIdentifierでスコープにバインディングがある場合の最適化 | E-01 (scope.hasBinding), E-24, E-25 | ○ |
| C-11 | 左辺がglobalThisの場合の最適化 | E-01, E-12, E-13 | ○ |
| C-12 | 左辺が未宣言の変数の場合に一時変数が生成されること | E-01 (scope.generateUidIdentifierBasedOnNode), E-12, E-13 | ○ |
| C-13 | 左辺がMemberExpressionの場合に一時変数が生成されること | E-01, E-04, E-05 | ○ |
| C-14 | 関数内での??演算子が正しく変換されること | E-04, E-05 | ○ |
| C-15 | デフォルトパラメータ内の??演算子が即時関数に変換されること | E-01 (scope.path.isPattern()), E-06, E-07 | ○ |
| C-16 | デフォルトパラメータ内の単純な??演算子が直接変換されること | E-06, E-07 | ○ |
| C-17 | デストラクチャリングのデフォルト値内の??演算子が変換されること | E-08, E-09 | ○ |
| C-18 | 複数の??演算子がネストして変換されること | E-10, E-11 | ○ |
| C-19 | 論理代入演算子(??=)が正しく変換されること | E-14, E-15 | ○ |
| C-20 | プロパティへの論理代入(??=)が正しく変換されること | E-14, E-15 | ○ |
| C-21 | 計算プロパティへの論理代入(??=)が正しく変換されること | E-14, E-15 | ○ |
| C-22 | pureGettersがtrueでMemberExpressionの場合の最適化 | E-01, E-22, E-23 | ○ |
| C-23 | pureGettersがtrueでパターン内の静的MemberExpressionが最適化されること | E-01, E-22, E-23 | ○ |
| C-24 | ??以外の演算子は変換されないこと | E-01 (node.operator !== "??" return) | ○ |
| C-25 | &&演算子は変換されないこと | E-01 (node.operator !== "??" return) | ○ |
| C-26 | api.assertVersionが不正なバージョンで失敗すること | E-01 (api.assertVersion) | ○ |
| C-27 | 左辺がnullの場合のランタイムセマンティクス | E-16 (null ?? undefined テスト) | ○ |
| C-28 | 左辺がundefinedの場合のランタイムセマンティクス | E-16 (undefined ?? null テスト) | ○ |
| C-29 | 左辺がfalseの場合のランタイムセマンティクス | E-16 (false ?? true テスト) | ○ |
| C-30 | 左辺が0の場合のランタイムセマンティクス | E-16 (0 ?? 1 テスト) | ○ |
| C-31 | 左辺が空文字列の場合のランタイムセマンティクス | E-16 ("" ?? "foo" テスト) | ○ |
| C-32 | オブジェクトプロパティが存在する場合の動作 | E-16 (obj.exists ?? false テスト) | ○ |
| C-33 | オブジェクトプロパティが存在しない場合の動作 | E-16 (obj.doesNotExist ?? "foo" テスト) | ○ |
| C-34 | 副作用のある関数呼び出しが1回のみ実行されること | E-16 (sideEffect() ?? -1 テスト) | ○ |
| C-35 | ゲッターが1回のみ呼び出されること | E-16, E-19 (obj2.foo ?? -1 テスト) | ○ |
| C-36 | グローバル変数のアクセスが1回のみ行われること | E-16 (a ?? {} テスト) | ○ |

## 4) 不足情報（Unknown / Missing）
- 該当なし：すべてのテストケースはソースコードまたはテストフィクスチャから根拠を得ています

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - すべてのテストケースに明確な根拠が存在します
- テストフィクスチャは包括的で、正常系・異常系・境界値・状態の各観点をカバーしています

## 6) レビュアーチェックリスト（最小）
- [ ] テストケースがソースコードの主要なロジック分岐をカバーしているか確認
- [ ] looseモード(noDocumentAll)とstrictモードの両方のテストケースが存在するか確認
- [ ] pureGetters assumptionの動作テストが十分か確認
- [ ] 論理代入演算子(??=)のテストケースが完全か確認
- [ ] ランタイムセマンティクステストの期待結果が正確か確認
- [ ] デフォルトパラメータ・デストラクチャリングのエッジケースがカバーされているか確認
