---
generated_at: 2026-02-24 23:20:00
metrics:
  claims_total: 40
  claims_with_evidence: 38
  claims_without_evidence: 2
confidence_derived: 0.95
---

# 根拠レポート：providers-auth-google 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：38 / 40、根拠なし：2
- 優先レビュー（高）
  1. **UT-GAU-005〜007（境界値テスト）**：空文字の場合の挙動は実装コードで明示的にチェックされていない可能性
  2. **UT-GAU-040（パラメータ優先度）**：queryとbodyの両方にcodeがある場合の優先度は実装から推測

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

- E-01: `packages/modules/providers/auth-google/src/services/google.ts` - GoogleAuthServiceクラス実装
- E-02: `packages/modules/providers/auth-google/src/index.ts` - モジュールエクスポート定義
- E-03: `packages/modules/providers/auth-google/integration-tests/__tests__/services.spec.ts` - 既存の統合テスト
- E-04: `packages/core/types/src/auth/providers/google.ts` - GoogleAuthProviderOptions型定義
- E-05: `packages/core/utils/src/auth/abstract-auth-provider.ts` - AbstractAuthModuleProvider基底クラス

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | validateOptionsは全必須オプション設定時にエラーをスローしない | E-01 (L27-39) | ○ |
| C-02 | validateOptionsはclientId未設定時にエラーをスロー | E-01 (L28-30) | ○ |
| C-03 | validateOptionsはclientSecret未設定時にエラーをスロー | E-01 (L32-34) | ○ |
| C-04 | validateOptionsはcallbackUrl未設定時にエラーをスロー | E-01 (L36-38), E-03 (L114-126) | ○ |
| C-05 | validateOptionsは空文字clientIdでエラーをスロー | E-01 (L28-30) | △ |
| C-06 | validateOptionsは空文字clientSecretでエラーをスロー | E-01 (L32-34) | △ |
| C-07 | validateOptionsは空文字callbackUrlでエラーをスロー | E-01 (L36-38) | ○ |
| C-08 | constructorは依存関係とオプションを正しく設定 | E-01 (L41-49) | ○ |
| C-09 | registerはMedusaError(NOT_ALLOWED)をスロー | E-01 (L51-56) | ○ |
| C-10 | authenticateはリダイレクトURLを返す | E-01 (L58-79), E-03 (L128-136) | ○ |
| C-11 | authenticateはカスタムcallback_urlをサポート | E-01 (L74), E-03 (L138-151) | ○ |
| C-12 | authenticateはqueryのerrorでエラーレスポンスを返す | E-01 (L65-70) | ○ |
| C-13 | authenticateはstateをauthIdentityServiceに保存 | E-01 (L77), E-03 (L40-45) | ○ |
| C-14 | authenticateはundefined queryでも動作 | E-01 (L62) | ○ |
| C-15 | authenticateはundefined bodyでデフォルトURLを使用 | E-01 (L74) | ○ |
| C-16 | validateCallbackは有効codeで新規ユーザーのauthIdentityを作成 | E-01 (L81-136), E-03 (L220-268) | ○ |
| C-17 | validateCallbackは有効codeで既存ユーザーのauthIdentityを取得 | E-01 (L81-136), E-03 (L270-318) | ○ |
| C-18 | validateCallbackはcode未提供でエラーを返す | E-01 (L95-98), E-03 (L153-164) | ○ |
| C-19 | validateCallbackはstate未提供でエラーを返す | E-01 (L100-103), E-03 (L166-179) | ○ |
| C-20 | validateCallbackは無効stateでエラーを返す | E-01 (L100-103), E-03 (L181-195) | ○ |
| C-21 | validateCallbackはトークン交換失敗でエラーを返す | E-01 (L110-122), E-03 (L197-218) | ○ |
| C-22 | validateCallbackはqueryのerrorでエラーレスポンスを返す | E-01 (L88-93) | ○ |
| C-23 | validateCallbackはbodyからcodeを取得可能 | E-01 (L95) | ○ |
| C-24 | verify_は有効idTokenでauthIdentityを返す | E-01 (L138-189) | ○ |
| C-25 | verify_はundefined idTokenでエラーを返す | E-01 (L142-144) | ○ |
| C-26 | verify_はemail_verified falseでMedusaErrorをスロー | E-01 (L151-156) | ○ |
| C-27 | verify_は新規ユーザーでauthIdentityを作成 | E-01 (L169-183) | ○ |
| C-28 | verify_は既存ユーザーでauthIdentityを取得 | E-01 (L170-172) | ○ |
| C-29 | verify_はNOT_FOUND以外のエラーでエラーを返す | E-01 (L180-182) | ○ |
| C-30 | verify_はユーザーメタデータを正しく抽出 | E-01 (L159-165) | ○ |
| C-31 | getRedirectは正しいGoogle OAuth URLを生成 | E-01 (L191-200) | ○ |
| C-32 | getRedirectはredirect_uriを含む | E-01 (L193) | ○ |
| C-33 | getRedirectはclient_idを含む | E-01 (L194) | ○ |
| C-34 | getRedirectはresponse_type=codeを含む | E-01 (L195) | ○ |
| C-35 | getRedirectはscopeを含む | E-01 (L196) | ○ |
| C-36 | getRedirectはstateを含む | E-01 (L197) | ○ |
| C-37 | identifierは'google' | E-01 (L21) | ○ |
| C-38 | DISPLAY_NAMEは'Google Authentication' | E-01 (L22) | ○ |
| C-39 | ModuleProviderはGoogleAuthServiceを含む | E-02 (L4-8) | ○ |
| C-40 | queryとbodyの両方にcodeがある場合queryが優先 | E-01 (L95) | ○ |

## 4) 不足情報（Unknown / Missing）
- **空文字チェックの挙動（C-05, C-06）**: 実装コード（E-01）では `!options.clientId` という条件でチェックしている。JavaScriptでは空文字はfalsyなので空文字でもエラーがスローされるはずだが、明示的なテストがない
  - 候補：既存テスト（E-03）の拡張 / 実装コードの確認

## 5) リスクフラグ（レビュー観点）
- **0 (低リスク)**: 基本的なテストケースは既存の統合テスト（E-03）で実証済み
- **1 (中リスク)**: 境界値テスト（空文字チェック）は実装の挙動に依存
- **0 (低リスク)**: モジュール構造はシンプルで、主要なクラスは1つのみ

## 6) レビュアーチェックリスト（最小）
- [ ] validateOptionsの空文字チェック（UT-GAU-005〜007）が実際の実装と一致するか確認
- [ ] Google OAuth APIとの連携テスト（UT-GAU-016, 017, 021）がモック設定と一致するか確認
- [ ] verify_メソッドのJWTデコード処理が期待通りか確認
- [ ] エラーメッセージが実装と一致するか確認
- [ ] テストケースの優先度が適切か確認（金額・認証関連は「高」になっているか）
