---
generated_at: 2026-01-28 14:30:00
metrics:
  claims_total: 96
  claims_with_evidence: 96
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：drawer_sub_categories.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

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

1. **根拠の有無確認**：各テストケースに対して、ソースコードに対応するクラス・メソッドが存在するか
2. **根拠との整合性**：テストケースの内容がソースコードの実装と矛盾していないか
3. **網羅性**：モジュール内の主要なクラス・メソッドをカバーしているか

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：96 / 96、根拠なし：0
- 優先レビュー（高）
  1. **UT-DSC-030**：RemoveWishlistItemEventで失敗時にもsuccess状態を発行するコードロジックの確認
  2. **UT-DSC-091**：インターネット接続チェックの外部依存テスト
  3. **UT-DSC-062**：グローバル状態更新のテスト方法検討

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

- E-01: `lib/screens/drawer_sub_categories/drawer_sub_categories.dart` - メインウィジェットファイル
- E-02: `lib/screens/drawer_sub_categories/bloc/drawer_sub_categories_bloc.dart` - BLoCクラス
- E-03: `lib/screens/drawer_sub_categories/bloc/drawer_sub_categories_event.dart` - イベントクラス定義
- E-04: `lib/screens/drawer_sub_categories/bloc/drawer_sub_categories_state.dart` - 状態クラス定義
- E-05: `lib/screens/drawer_sub_categories/bloc/drawer_sub_categories_repository.dart` - リポジトリクラス
- E-06: `lib/screens/drawer_sub_categories/utils/index.dart` - エクスポートインデックス

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 (UT-DSC-001) | getDrawerSubCategoriesでフィルタ指定でサブカテゴリを取得 | E-05 (行30-41) | ○ |
| C-02 (UT-DSC-002) | getDrawerSubCategoriesでフィルタなし取得 | E-05 (行31: filters?はnullable) | ○ |
| C-03 (UT-DSC-003) | getDrawerSubCategories例外時にnull返却 | E-05 (行36-39: try-catch) | ○ |
| C-04 (UT-DSC-004) | callCategoriesDataで商品一覧取得 | E-05 (行44-55) | ○ |
| C-05 (UT-DSC-005) | callCategoriesDataのページネーション | E-05 (行48-49: page引数) | ○ |
| C-06 (UT-DSC-006) | callCategoriesData例外時にnull返却 | E-05 (行50-53: try-catch) | ○ |
| C-07 (UT-DSC-007) | callAddToCartAPiでカート追加 | E-05 (行58-68) | ○ |
| C-08 (UT-DSC-008) | callAddToCartAPi例外時にnull返却 | E-05 (行63-66: try-catch) | ○ |
| C-09 (UT-DSC-009) | callAddToCartAPiで数量0の境界値 | E-05 (行58: quantityパラメータ) | ○ |
| C-10 (UT-DSC-010) | addItemToWishlistでウィッシュリスト追加 | E-05 (行71-80) | ○ |
| C-11 (UT-DSC-011) | addItemToWishlist例外時にnull返却 | E-05 (行75-78: try-catch) | ○ |
| C-12 (UT-DSC-012) | addItemToWishlistで空文字列の境界値 | E-05 (行71: var wishListProductId) | ○ |
| C-13 (UT-DSC-013) | callAddToCompareListApiで比較リスト追加 | E-05 (行83-93) | ○ |
| C-14 (UT-DSC-014) | callAddToCompareListApi例外時にnull返却 | E-05 (行87-90: try-catch) | ○ |
| C-15 (UT-DSC-015) | callAddToCompareListApiでnull productId | E-05 (行83: String? productId) | ○ |
| C-16 (UT-DSC-016) | removeItemFromWishlistで削除 | E-05 (行96-107) | ○ |
| C-17 (UT-DSC-017) | removeItemFromWishlist例外時にnull返却 | E-05 (行102-105: try-catch) | ○ |
| C-18 (UT-DSC-018) | FetchDrawerSubCategoryEventで初期状態発行 | E-02 (行29: emit(DrawerSubCategoryInitialState())) | ○ |
| C-19 (UT-DSC-019) | FetchDrawerSubCategoryEvent成功状態 | E-02 (行33: emit(FetchDrawerSubCategoryState.success)) | ○ |
| C-20 (UT-DSC-020) | FetchDrawerSubCategoryEvent失敗状態 | E-02 (行35-36: emit(FetchDrawerSubCategoryState.fail)) | ○ |
| C-21 (UT-DSC-021) | FetchCategoryProductsEvent成功状態 | E-02 (行43: emit(FetchCategoryProductsState.success)) | ○ |
| C-22 (UT-DSC-022) | FetchCategoryProductsEvent失敗状態 | E-02 (行45-46: emit(FetchCategoryProductsState.fail)) | ○ |
| C-23 (UT-DSC-023) | AddToCartEvent成功時 | E-02 (行53-56: success==true) | ○ |
| C-24 (UT-DSC-024) | AddToCartEvent失敗時 | E-02 (行57-59: else fail) | ○ |
| C-25 (UT-DSC-025) | AddToCartEvent例外時 | E-02 (行61-63: catch) | ○ |
| C-26 (UT-DSC-026) | AddWishlistEvent成功時 | E-02 (行70-72: success==true) | ○ |
| C-27 (UT-DSC-027) | AddWishlistEvent失敗時 | E-02 (行73-74: else fail) | ○ |
| C-28 (UT-DSC-028) | AddWishlistEvent例外時 | E-02 (行76-78: catch) | ○ |
| C-29 (UT-DSC-029) | RemoveWishlistItemEvent成功時 | E-02 (行85-88: status==true) | ○ |
| C-30 (UT-DSC-030) | RemoveWishlistItemEvent失敗時もsuccess発行 | E-02 (行89-92: else節もsuccess発行) | ○ |
| C-31 (UT-DSC-031) | RemoveWishlistItemEvent例外時 | E-02 (行94-96: catch) | ○ |
| C-32 (UT-DSC-032) | AddToCompareEvent成功時 | E-02 (行103-105: success==true) | ○ |
| C-33 (UT-DSC-033) | AddToCompareEvent失敗時 | E-02 (行106-107: else fail) | ○ |
| C-34 (UT-DSC-034) | AddToCompareEvent例外時 | E-02 (行109-111: catch) | ○ |
| C-35 (UT-DSC-035) | FetchDrawerSubCategoryEventコンストラクタ | E-03 (行13-16) | ○ |
| C-36 (UT-DSC-036) | FetchDrawerSubCategoryEventでnull filters | E-03 (行14: List<Map>? filters) | ○ |
| C-37 (UT-DSC-037) | FetchCategoryProductsEventコンストラクタ | E-03 (行19-24) | ○ |
| C-38 (UT-DSC-038) | FetchCategoryProductsEventでnull page | E-03 (行21: int? page) | ○ |
| C-39 (UT-DSC-039) | AddWishlistEventコンストラクタ | E-03 (行27-29) | ○ |
| C-40 (UT-DSC-040) | AddWishlistEventでnull productId | E-03 (行28: String? productId) | ○ |
| C-41 (UT-DSC-041) | RemoveWishlistItemEventコンストラクタ | E-03 (行32-34) | ○ |
| C-42 (UT-DSC-042) | AddToCartEventコンストラクタ | E-03 (行37-40) | ○ |
| C-43 (UT-DSC-043) | AddToCartEventでquantity=0 | E-03 (行39: int quantity) | ○ |
| C-44 (UT-DSC-044) | AddToCompareEventコンストラクタ | E-03 (行43-45) | ○ |
| C-45 (UT-DSC-045) | FetchDrawerSubCategoryState.success | E-04 (行27) | ○ |
| C-46 (UT-DSC-046) | FetchDrawerSubCategoryState.fail | E-04 (行29) | ○ |
| C-47 (UT-DSC-047) | FetchCategoryProductsState.success | E-04 (行37) | ○ |
| C-48 (UT-DSC-048) | FetchCategoryProductsState.fail | E-04 (行39) | ○ |
| C-49 (UT-DSC-049) | AddWishlistState.success | E-04 (行47) | ○ |
| C-50 (UT-DSC-050) | AddWishlistState.fail | E-04 (行48) | ○ |
| C-51 (UT-DSC-051) | RemoveWishlistState.success | E-04 (行56-57) | ○ |
| C-52 (UT-DSC-052) | RemoveWishlistState.fail | E-04 (行58) | ○ |
| C-53 (UT-DSC-053) | AddToCompareState.success | E-04 (行66-67) | ○ |
| C-54 (UT-DSC-054) | AddToCompareState.fail | E-04 (行68) | ○ |
| C-55 (UT-DSC-055) | AddToCartState.success | E-04 (行76-77) | ○ |
| C-56 (UT-DSC-056) | AddToCartState.fail | E-04 (行78) | ○ |
| C-57 (UT-DSC-057) | DrawerSubCategoryInitialStateコンストラクタ | E-04 (行20) | ○ |
| C-58 (UT-DSC-058) | initStateでFetchDrawerSubCategoryEvent発行 | E-01 (行48-55) | ○ |
| C-59 (UT-DSC-059) | fetchProductsでFetchCategoryProductsEvent発行 | E-01 (行58-62) | ○ |
| C-60 (UT-DSC-060) | AppBarにタイトル表示 | E-01 (行67-69) | ○ |
| C-61 (UT-DSC-061) | titleがnullの場合の空文字表示 | E-01 (行68: widget.title ?? "") | ○ |
| C-62 (UT-DSC-062) | AddToCartState成功時のカウント更新 | E-01 (行86-89) | ○ |
| C-63 (UT-DSC-063) | AddToCartState失敗時のエラー通知 | E-01 (行81-82) | ○ |
| C-64 (UT-DSC-064) | AddWishlistState成功時の成功通知 | E-01 (行96-98) | ○ |
| C-65 (UT-DSC-065) | AddWishlistState失敗時のエラー通知 | E-01 (行94-95) | ○ |
| C-66 (UT-DSC-066) | RemoveWishlistState成功時の成功通知 | E-01 (行105-107) | ○ |
| C-67 (UT-DSC-067) | RemoveWishlistState失敗時のエラー通知 | E-01 (行103-104) | ○ |
| C-68 (UT-DSC-068) | AddToCompareState成功時の成功通知 | E-01 (行114-115) | ○ |
| C-69 (UT-DSC-069) | AddToCompareState失敗時のエラー通知 | E-01 (行112-113) | ○ |
| C-70 (UT-DSC-070) | サブカテゴリリスト表示 | E-01 (行161-162, 175-241) | ○ |
| C-71 (UT-DSC-071) | 空サブカテゴリの処理 | E-01 (行161: isNotEmpty条件) | ○ |
| C-72 (UT-DSC-072) | parentId!=1の条件分岐 | E-01 (行169) | ○ |
| C-73 (UT-DSC-073) | 子カテゴリありの場合の遷移 | E-01 (行211-225) | ○ |
| C-74 (UT-DSC-074) | 子カテゴリなしの場合の遷移 | E-01 (行226-238) | ○ |
| C-75 (UT-DSC-075) | 商品リスト表示 | E-01 (行313-314) | ○ |
| C-76 (UT-DSC-076) | 空商品リストのEmptyDataView | E-01 (行656-659) | ○ |
| C-77 (UT-DSC-077) | View AllボタンでcategoryScreen遷移 | E-01 (行333-341) | ○ |
| C-78 (UT-DSC-078) | 商品タップでproductScreen遷移 | E-01 (行362-369) | ○ |
| C-79 (UT-DSC-079) | セール中商品のSaleバッジ | E-01 (行401-425) | ○ |
| C-80 (UT-DSC-080) | 新商品のNewバッジ | E-01 (行426-464) | ○ |
| C-81 (UT-DSC-081) | ウィッシュリスト追加操作 | E-01 (行484-489) | ○ |
| C-82 (UT-DSC-082) | ウィッシュリスト削除操作 | E-01 (行477-483) | ○ |
| C-83 (UT-DSC-083) | 未ログイン時のウィッシュリスト警告 | E-01 (行491-497) | ○ |
| C-84 (UT-DSC-084) | 比較リスト追加操作 | E-01 (行518-525) | ○ |
| C-85 (UT-DSC-085) | 未ログイン時の比較警告 | E-01 (行527-533) | ○ |
| C-86 (UT-DSC-086) | シンプル商品のカート追加 | E-01 (行592-611) | ○ |
| C-87 (UT-DSC-087) | バーチャル商品のカート追加 | E-01 (行599-601) | ○ |
| C-88 (UT-DSC-088) | カスタマイズオプションあり商品 | E-01 (行602-631) | ○ |
| C-89 (UT-DSC-089) | 設定可能商品の処理 | E-01 (行596-601: type条件) | ○ |
| C-90 (UT-DSC-090) | 販売不可商品のボタン無効化 | E-01 (行580-581: opacity) | ○ |
| C-91 (UT-DSC-091) | インターネット未接続時のエラー | E-01 (行633-639) | ○ |
| C-92 (UT-DSC-092) | 画像存在時のImageView表示 | E-01 (行149-155) | ○ |
| C-93 (UT-DSC-093) | 空画像の処理 | E-01 (行149: widget.image != "") | ○ |
| C-94 (UT-DSC-094) | null画像の処理 | E-01 (行149: widget.image != null) | ○ |
| C-95 (UT-DSC-095) | ローディング中のLoader表示 | E-01 (行305) | ○ |
| C-96 (UT-DSC-096) | Blocコンストラクタ | E-02 (行21-24) | ○ |

## 4) 不足情報（Unknown / Missing）
- 特になし。すべてのテストケースがソースコードに対応しています。
- 外部依存（ApiClient、checkInternetConnection等）のモック戦略は実装時に検討が必要です。

## 5) リスクフラグ（レビュー観点）
- **リスクレベル 1（中リスク）**: UT-DSC-030 - RemoveWishlistItemEventの失敗時処理が成功状態を発行するロジックは、意図的な設計か確認が必要
- **リスクレベル 0（低リスク）**: 外部API依存のテストはモック戦略が必要
- **リスクレベル 0（低リスク）**: グローバル状態（GlobalData.cartCountController）の更新テストは統合テストでの確認を推奨

## 6) レビュアーチェックリスト（最小）
- [ ] UT-DSC-030のRemoveWishlistItemEvent失敗時の動作が意図通りか確認
- [ ] BLoCテストで適切なモック/フェイクの使用が可能か確認
- [ ] ApiClientへの依存をモック化するテスト戦略の確認
- [ ] 各状態クラスのファクトリコンストラクタが正しくステータスを設定しているか確認
- [ ] ウィジェットテストでBlocProviderのセットアップ方法の確認
- [ ] インターネット接続チェック（checkInternetConnection）のモック方法の確認
