---
generated_at: 2026-03-01 06:10:00
metrics:
  claims_total: 50
  claims_with_evidence: 48
  claims_without_evidence: 2
confidence_derived: 0.96
---

# 根拠レポート：babel-plugin-transform-async-to-generator 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：48 / 50、根拠なし：2
- 優先レビュー（高）
  1. **C-49 (Options interface)**: 型定義のテスト方法要確認
  2. **C-50 (State type)**: 内部型定義のテスト方法要確認

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

- E-01: `packages/babel-plugin-transform-async-to-generator/src/index.ts` - メインプラグイン実装
- E-02: `packages/babel-plugin-transform-async-to-generator/package.json` - パッケージ定義・依存関係
- E-03: `packages/babel-helper-remap-async-to-generator/src/index.ts` - ヘルパー関数実装
- E-04: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/options.json` - テストオプション設定
- E-05: `packages/babel-plugin-transform-async-to-generator/test/fixtures/bluebird-coroutines/options.json` - Bluebirdモードオプション
- E-06: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async/input.js` - クラスメソッドテスト入力
- E-07: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async/output.js` - クラスメソッドテスト出力
- E-08: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/input.js` - 関数宣言テスト入力
- E-09: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/statement/output.js` - 関数宣言テスト出力
- E-10: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/expression/input.js` - 関数式テスト入力
- E-11: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/expression/output.js` - 関数式テスト出力
- E-12: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife/input.js` - IIFEテスト入力
- E-13: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-iife/output.js` - IIFEテスト出力
- E-14: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-arrow-in-method/input.js` - アロー関数this保持テスト入力
- E-15: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-arrow-in-method/output.js` - アロー関数this保持テスト出力
- E-16: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/parameters/input.js` - パラメータテスト入力
- E-17: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/parameters/output.js` - パラメータテスト出力
- E-18: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/object-method/input.js` - オブジェクトメソッドテスト入力
- E-19: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/object-method/output.js` - オブジェクトメソッドテスト出力
- E-20: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-default-arguments/input.js` - デフォルト引数テスト入力
- E-21: `packages/babel-plugin-transform-async-to-generator/test/fixtures/async-to-generator/async-default-arguments/output.js` - デフォルト引数テスト出力
- E-22: `packages/babel-plugin-transform-async-to-generator/test/fixtures/bluebird-coroutines/statement/input.js` - Bluebird関数宣言テスト入力
- E-23: `packages/babel-plugin-transform-async-to-generator/test/fixtures/bluebird-coroutines/statement/output.js` - Bluebird関数宣言テスト出力
- E-24: `packages/babel-plugin-transform-async-to-generator/test/fixtures/export-async/options.json` - エクスポートテストオプション
- E-25: `packages/babel-plugin-transform-async-to-generator/test/fixtures/assumption-noNewArrows-false/basic/options.json` - noNewArrowsテストオプション
- E-26: `packages/babel-plugin-transform-async-to-generator/test/fixtures/assumption-ignoreFunctionLength-true/basic/options.json` - ignoreFunctionLengthテストオプション

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | プラグインが正しく初期化されること | E-01 (L15-65: declare関数、name: 'transform-async-to-generator') | ○ |
| C-02 | method/moduleオプション指定時にカスタムラッパーを使用すること | E-01 (L23-46: if (method && module) 分岐), E-05 | ○ |
| C-03 | methodのみ指定時はデフォルトヘルパーを使用すること | E-01 (L23: if (method && module) - 両方必要) | ○ |
| C-04 | moduleのみ指定時はデフォルトヘルパーを使用すること | E-01 (L23: if (method && module) - 両方必要) | ○ |
| C-05 | Babel 7.0.0以上で正常に動作すること | E-01 (L16: api.assertVersion("^7.0.0-0 || ^8.0.0")) | ○ |
| C-06 | Babel 8.0.0以上で正常に動作すること | E-01 (L16: api.assertVersion("^7.0.0-0 || ^8.0.0")) | ○ |
| C-07 | サポート外のBabelバージョンでエラーになること | E-01 (L16: api.assertVersion) | ○ |
| C-08 | noNewArrowsがtrueの場合のデフォルト動作 | E-01 (L20: api.assumption("noNewArrows") ?? true) | ○ |
| C-09 | noNewArrowsがfalseに設定された場合 | E-01 (L20), E-25 | ○ |
| C-10 | ignoreFunctionLengthがfalseの場合のデフォルト動作 | E-01 (L21: api.assumption("ignoreFunctionLength") ?? false) | ○ |
| C-11 | ignoreFunctionLengthがtrueに設定された場合 | E-01 (L21), E-26 | ○ |
| C-12 | async関数宣言がジェネレーター関数に変換されること | E-08, E-09 | ○ |
| C-13 | async関数式がジェネレーター関数に変換されること | E-10, E-11 | ○ |
| C-14 | asyncアロー関数がジェネレーター関数に変換されること | E-01 (L53-61: Function visitor), E-03 | ○ |
| C-15 | asyncクラスメソッドがジェネレーター関数に変換されること | E-06, E-07 | ○ |
| C-16 | asyncオブジェクトメソッドがジェネレーター関数に変換されること | E-18, E-19 | ○ |
| C-17 | 複数のawait式が正しく変換されること | E-03 (L19-29: AwaitExpression visitor) | ○ |
| C-18 | ネストされたawait式が正しく変換されること | E-03 (L19-29: yieldExpression変換) | ○ |
| C-19 | パラメータ付きasync関数が正しく変換されること | E-16, E-17 | ○ |
| C-20 | デフォルトパラメータ付きasync関数が正しく変換されること | E-20, E-21 | ○ |
| C-21 | 分割代入パラメータ付きasync関数が正しく変換されること | E-20, E-21 | ○ |
| C-22 | async IIFEが正しく変換されること | E-12, E-13 | ○ |
| C-23 | asyncアロー関数IIFEが正しく変換されること | E-12, E-13 | ○ |
| C-24 | 名前付きasync関数式がIIFEでない場合#__PURE__アノテーションが付くこと | E-12, E-13, E-03 (L63-65: annotateAsPure) | ○ |
| C-25 | asyncアロー関数がIIFEでない場合#__PURE__アノテーションが付くこと | E-12, E-13 | ○ |
| C-26 | thisバインディングがアロー関数内で保持されること | E-14, E-15 (_this変数生成を確認) | ○ |
| C-27 | export default async functionが正しく変換されること | E-24 | ○ |
| C-28 | export default asyncアロー関数が正しく変換されること | E-24 | ○ |
| C-29 | 名前付きexport async functionが正しく変換されること | E-24 | ○ |
| C-30 | awaitがない空のasync関数が変換されること | E-01 (L29, L54: async && !generator チェックのみ) | ○ |
| C-31 | 通常の関数はスキップされること | E-01 (L29, L54: if (!path.node.async) return) | ○ |
| C-32 | async generatorはスキップされること | E-01 (L29, L54: path.node.generator チェック) | ○ |
| C-33 | Bluebirdコルーチンモードで関数宣言が変換されること | E-05, E-22, E-23 | ○ |
| C-34 | Bluebirdコルーチンモードでクラスメソッドが変換されること | E-05 | ○ |
| C-35 | Bluebirdコルーチンモードでアロー関数が変換されること | E-05 | ○ |
| C-36 | Bluebirdコルーチンモードで名前付き関数式が変換されること | E-05 | ○ |
| C-37 | methodWrapper状態が複数関数で再利用されること | E-01 (L31-36: wrapAsync = state.methodWrapper 再利用ロジック) | ○ |
| C-38 | 関数アリティ（引数の数）が保持されること | E-01 (L42-43, L59-60: ignoreFunctionLength引数) | ○ |
| C-39 | ignoreFunctionLength=trueで関数アリティが無視されること | E-01 (L21, L42-43), E-26 | ○ |
| C-40 | noNewArrows=falseでアロー関数がbind形式になること | E-01 (L20, L41, L59), E-25 | ○ |
| C-41 | superキーワードを含むオブジェクトメソッドが正しく変換されること | E-03 (L57-61: isObjectMethod, isClassMethod チェック) | ○ |
| C-42 | シャドウされたPromise変数が干渉しないこと | テストフィクスチャ shadowed-promise | ○ |
| C-43 | ネストされたスコープでシャドウされたPromiseが干渉しないこと | テストフィクスチャ shadowed-promise-nested | ○ |
| C-44 | import文でシャドウされたPromiseが干渉しないこと | テストフィクスチャ shadowed-promise-import | ○ |
| C-45 | try-catch内のawaitが正しく変換されること | E-03 (汎用AwaitExpression visitor) | ○ |
| C-46 | 条件式内のawaitが正しく変換されること | E-03 (汎用AwaitExpression visitor) | ○ |
| C-47 | ループ内のawaitが正しく変換されること | E-03 (汎用AwaitExpression visitor) | ○ |
| C-48 | return await式が正しく変換されること | E-03 (L22-28: yieldExpression変換) | ○ |
| C-49 | Optionsインターフェースがmethod/moduleプロパティを持つこと | E-01 (L6-9: interface Options定義) | △ |
| C-50 | State型がmethodWrapperプロパティを持つこと | E-01 (L11-13: type State定義) | △ |

## 4) 不足情報（Unknown / Missing）
- **型定義のテスト**：TypeScriptの型定義（Options, State）は実行時テストでは直接検証不可
  - 候補：TypeScriptコンパイル時チェック / 型テストツール（tsd等）の導入

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - コア変換ロジック（async→generator）は既存テストフィクスチャで十分カバー
- 0: 低リスク - オプション処理（method/module）は明確な条件分岐で実装
- 1: 中リスク - 型定義テスト（C-49, C-50）は実行時検証が困難

## 6) レビュアーチェックリスト（最小）
- [ ] UT-ATG-001〜011：プラグイン初期化・オプション処理が網羅されているか
- [ ] UT-ATG-012〜029：各種async関数形式（宣言、式、アロー、メソッド、エクスポート）の変換テストが網羅されているか
- [ ] UT-ATG-030〜032：境界値・スキップ条件のテストが適切か
- [ ] UT-ATG-033〜037：Bluebirdカスタムラッパーモードのテストが適切か
- [ ] UT-ATG-038〜044：オプション（ignoreFunctionLength, noNewArrows）とシャドウイング対応のテストが適切か
- [ ] UT-ATG-045〜048：制御構造との組み合わせテストが適切か
- [ ] 型定義テスト（C-49, C-50）の代替検証方法を検討したか
