---
generated_at: 2026-02-18 12:30:00
metrics:
  claims_total: 111
  claims_with_evidence: 108
  claims_without_evidence: 3
confidence_derived: 0.97
---

# 根拠レポート：packages-erd-core 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.97**
  - 根拠あり：108 / 111、根拠なし：3
- 優先レビュー（高）
  1. **UT-ERD-063（空文字列圧縮）**：境界値テストの期待結果が実装依存
  2. **UT-ERD-066（解凍エラー）**：pakoライブラリの例外仕様に依存
  3. **UT-ERD-111（定数値確認）**：定数値の妥当性は仕様書なし

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

- E-01: `src/features/erd/utils/convertSchemaToNodes.ts` - スキーマからノード変換ロジック
- E-02: `src/features/erd/utils/highlightNodesAndEdges.ts` - ハイライト処理ロジック
- E-03: `src/features/erd/utils/columnHandleId.ts` - ハンドルID生成関数
- E-04: `src/features/erd/utils/isTableNode.ts` - テーブルノード型ガード
- E-05: `src/features/erd/utils/createHash.ts` - ハッシュ生成関数
- E-06: `src/features/erd/utils/url/getTableLinkHref.ts` - テーブルリンクURL生成
- E-07: `src/features/erd/utils/url/getTableColumnLinkHref.ts` - カラムリンクURL生成
- E-08: `src/features/erd/utils/url/getTableIndexLinkHref.ts` - インデックスリンクURL生成
- E-09: `src/features/erd/utils/url/getTableColumnElementId.ts` - カラムエレメントID生成
- E-10: `src/features/erd/utils/url/getTableIndexElementId.ts` - インデックスエレメントID生成
- E-11: `src/features/erd/utils/cookieUtils.ts` - Cookie操作ユーティリティ
- E-12: `src/features/erd/components/ERDContent/utils/updateNodesHiddenState.ts` - ノード表示状態更新
- E-13: `src/features/erd/components/ERDContent/utils/hasNonRelatedChildNodes.ts` - 非関連子ノード判定
- E-14: `src/features/erd/components/ERDContent/components/TableNode/TableDetail/extractSchemaForTable.ts` - テーブル用スキーマ抽出
- E-15: `src/features/erd/utils/computeAutoLayout/computeAutoLayout.ts` - 自動レイアウト計算
- E-16: `src/features/erd/utils/computeAutoLayout/getElkLayout.ts` - ELKレイアウト取得
- E-17: `src/features/erd/utils/computeAutoLayout/convertNodesToElkNodes.ts` - ElkNode変換
- E-18: `src/features/erd/utils/computeAutoLayout/convertElkNodesToNodes.ts` - ElkNodeからNode変換
- E-19: `src/features/erd/components/ERDRenderer/CommandPalette/utils/suggestion.ts` - サジェスション処理
- E-20: `src/utils/compressToEncodedUriComponent.ts` - URI圧縮エンコード
- E-21: `src/utils/decompressFromEncodedUriComponent.ts` - URI解凍デコード
- E-22: `src/schemas/showMode/schemas.ts` - ShowModeスキーマ
- E-23: `src/schemas/hash/schemas.ts` - Hashスキーマ
- E-24: `src/schemas/queryParam/schemas.ts` - QueryParamスキーマ
- E-25: `src/features/diff/hooks/useDiffStyle.ts` - Diffスタイルフック
- E-26: `src/features/erd/components/ERDContent/components/TableNode/TableDetail/Comment/getChangeStatus.ts` - コメント変更ステータス
- E-27: `src/features/erd/components/ERDContent/components/TableNode/TableHeader/getChangeStatus.ts` - ヘッダー変更ステータス
- E-28: `src/features/erd/components/ERDContent/components/TableNode/TableColumnList/TableColumn/getChangeStatus.ts` - カラム変更ステータス
- E-29: `src/features/erd/components/ERDContent/components/TableNode/TableDetail/Indexes/IndexesItem/getChangeStatus.ts` - インデックス変更ステータス
- E-30: `src/features/erd/components/ERDContent/components/TableNode/TableDetail/Constraints/ForeignKeyConstraints/ForeignKeyConstraintsItem/getChangeStatus.ts` - 制約変更ステータス
- E-31: `src/features/gtm/utils/pushToDataLayer.ts` - GTMデータレイヤー操作
- E-32: `src/features/gtm/utils/toggleLogEvent.ts` - トグルログイベント
- E-33: `src/features/gtm/utils/selectTableLogEvent.ts` - テーブル選択ログイベント
- E-34: `src/features/gtm/utils/clickLogEvent.ts` - クリックログイベント
- E-35: `src/stores/schema/hooks.ts` - スキーマストアフック
- E-36: `src/stores/userEditing/hooks.ts` - ユーザー編集ストアフック
- E-37: `src/features/erd/constants.ts` - ERD定数定義
- E-38: `src/features/erd/types.ts` - ERD型定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | convertSchemaToNodesがリレーションシップを持つテーブルを正しく変換 | E-01 | ○ |
| C-02 | 孤立テーブルがNON_RELATED_TABLE_GROUP_NODEの子になる | E-01 | ○ |
| C-03 | showMode=TABLE_NAMEでハンドルがnull | E-01 | ○ |
| C-04 | 空スキーマで空配列を返却 | E-01 | ○ |
| C-05 | activeTableNameに一致するノードがactiveHighlighted | E-02 | ○ |
| C-06 | 関連ノードがhighlighted | E-02 | ○ |
| C-07 | hoverTableNameに一致するノードがhighlighted | E-02 | ○ |
| C-08 | 関連エッジのzIndex変更 | E-02 | ○ |
| C-09 | triggerが空で全ノードunhighlight | E-02 | ○ |
| C-10 | columnHandleIdが正しくIDを生成 | E-03 | ○ |
| C-11 | columnHandleIdの空文字処理 | E-03 | ○ |
| C-12 | isTableNodeがtableタイプで真を返す | E-04 | ○ |
| C-13 | isTableNodeが他タイプで偽を返す | E-04 | ○ |
| C-14 | createHashが一貫したハッシュを生成 | E-05 | ○ |
| C-15 | createHashの決定性 | E-05 | ○ |
| C-16 | createHashの空文字列処理 | E-05 | ○ |
| C-17 | getTableLinkHrefがactiveパラメータを含むURL生成 | E-06 | ○ |
| C-18 | 既存クエリパラメータの保持 | E-06 | ○ |
| C-19 | getTableColumnLinkHrefがフラグメント付きURL生成 | E-07 | ○ |
| C-20 | getTableIndexLinkHrefがフラグメント付きURL生成 | E-08 | ○ |
| C-21 | getTableColumnElementIdがエレメントID生成 | E-09 | ○ |
| C-22 | getTableIndexElementIdがエレメントID生成 | E-10 | ○ |
| C-23 | getCookieが存在するCookie値を取得 | E-11 | ○ |
| C-24 | getCookieが存在しないCookieでnull | E-11 | ○ |
| C-25 | getCookieがSSR環境でnull | E-11 | ○ |
| C-26 | getCookieJsonがJSONパース | E-11 | ○ |
| C-27 | getCookieJsonが不正JSONでnull | E-11 | ○ |
| C-28 | setCookieがCookie設定 | E-11 | ○ |
| C-29 | setCookieのオプション処理 | E-11 | ○ |
| C-30 | setCookieJsonがJSON保存 | E-11 | ○ |
| C-31 | updateNodesHiddenStateが指定ノードを非表示 | E-12 | ○ |
| C-32 | shouldHideGroupNodeIdでグループ非表示 | E-12 | ○ |
| C-33 | 空hiddenNodeIdsで全表示 | E-12 | ○ |
| C-34 | hasNonRelatedChildNodesが子ノードありでtrue | E-13 | ○ |
| C-35 | hasNonRelatedChildNodesが子ノードなしでfalse | E-13 | ○ |
| C-36 | hasNonRelatedChildNodesが空配列でfalse | E-13 | ○ |
| C-37 | extractSchemaForTableが関連テーブル抽出 | E-14 | ○ |
| C-38 | extractSchemaForTableが孤立テーブル処理 | E-14 | ○ |
| C-39 | extractSchemaForTableのenums/extensions空オブジェクト | E-14 | ○ |
| C-40 | computeAutoLayoutが可視ノードレイアウト計算 | E-15 | ○ |
| C-41 | 非表示ノードがレイアウト計算から除外 | E-15 | ○ |
| C-42 | 両端可視のエッジのみ使用 | E-15 | ○ |
| C-43 | getElkLayoutがELKレイアウト計算 | E-16 | ○ |
| C-44 | layout.childrenなしでフォールバック | E-16 | ○ |
| C-45 | convertNodesToElkNodesがElkNode形式に変換 | E-17 | ○ |
| C-46 | 親子関係の正しい設定 | E-17 | ○ |
| C-47 | nonRelatedTableGroupのaspectRatio | E-17 | ○ |
| C-48 | measuredがundefinedで0 | E-17 | ○ |
| C-49 | convertElkNodesToNodesの位置反映 | E-18 | ○ |
| C-50 | 子ノードの再帰変換 | E-18 | ○ |
| C-51 | 対応するoriginNodeなしでスキップ | E-18 | ○ |
| C-52 | getSuggestionTextのtableタイプフォーマット | E-19 | ○ |
| C-53 | getSuggestionTextのcolumnタイプフォーマット | E-19 | ○ |
| C-54 | getSuggestionTextのindexタイプフォーマット | E-19 | ○ |
| C-55 | getSuggestionTextのcommandタイプフォーマット | E-19 | ○ |
| C-56 | textToSuggestionのtableテキスト変換 | E-19 | ○ |
| C-57 | textToSuggestionのcolumnテキスト変換 | E-19 | ○ |
| C-58 | textToSuggestionのindexテキスト変換 | E-19 | ○ |
| C-59 | textToSuggestionの不正テキストでnull | E-19 | ○ |
| C-60 | textToSuggestionの不完全columnでnull | E-19 | ○ |
| C-61 | compressToEncodedUriComponentの圧縮エンコード | E-20 | ○ |
| C-62 | URL安全文字のみ含む | E-20 | ○ |
| C-63 | 空文字列の圧縮 | E-20 | △ |
| C-64 | decompressFromEncodedUriComponentの解凍デコード | E-21 | ○ |
| C-65 | URL文字の正しい変換 | E-21 | ○ |
| C-66 | 不正入力でエラースロー | E-21 | △ |
| C-67 | showModeSchemaのALL_FIELDSパース | E-22 | ○ |
| C-68 | showModeSchemaのTABLE_NAMEパース | E-22 | ○ |
| C-69 | showModeSchemaのKEY_ONLYパース | E-22 | ○ |
| C-70 | showModeSchemaの無効値エラー | E-22 | ○ |
| C-71 | hashSchemaの有効Hash形式パース | E-23 | ○ |
| C-72 | hashSchemaのindexes形式パース | E-23 | ○ |
| C-73 | hashSchemaの不正形式でfalse | E-23 | ○ |
| C-74 | hashSchemaのセパレータ不足でfalse | E-23 | ○ |
| C-75 | queryParamSchemaのactiveパース | E-24 | ○ |
| C-76 | queryParamSchemaのhiddenパース | E-24 | ○ |
| C-77 | queryParamSchemaのshowModeパース | E-24 | ○ |
| C-78 | queryParamSchemaの無効値エラー | E-24 | ○ |
| C-79 | useDiffStyleのaddedでaddedBgクラス | E-25 | ○ |
| C-80 | useDiffStyleのremovedでremovedBgクラス | E-25 | ○ |
| C-81 | useDiffStyleのmodifiedでmodifiedBgクラス | E-25 | ○ |
| C-82 | useDiffStyleのshowDiff=falseでundefined | E-25 | ○ |
| C-83 | useDiffStyleのchangeStatus=undefinedでundefined | E-25 | ○ |
| C-84 | Comment getChangeStatusのテーブル追加でadded | E-26 | ○ |
| C-85 | Comment getChangeStatusのテーブル削除でremoved | E-26 | ○ |
| C-86 | Comment getChangeStatusのコメント変更でmodified | E-26 | ○ |
| C-87 | TableHeader getChangeStatusのテーブル変更検出 | E-27 | ○ |
| C-88 | TableHeader getChangeStatusのカラム変更でmodified | E-27 | ○ |
| C-89 | TableHeader getChangeStatusのインデックス変更でmodified | E-27 | ○ |
| C-90 | TableHeader getChangeStatusの制約変更でmodified | E-27 | ○ |
| C-91 | TableHeader getChangeStatusの変更なしでunchanged | E-27 | ○ |
| C-92 | TableColumn getChangeStatusのテーブル追加時カラムadded | E-28 | ○ |
| C-93 | TableColumn getChangeStatusのカラム追加でadded | E-28 | ○ |
| C-94 | TableColumn getChangeStatusのカラム削除でremoved | E-28 | ○ |
| C-95 | TableColumn getChangeStatusのカラム変更でmodified | E-28 | ○ |
| C-96 | IndexesItem getChangeStatusのテーブル追加時インデックスadded | E-29 | ○ |
| C-97 | IndexesItem getChangeStatusのインデックス追加でadded | E-29 | ○ |
| C-98 | IndexesItem getChangeStatusのインデックス削除でremoved | E-29 | ○ |
| C-99 | ForeignKeyConstraintsItem getChangeStatusのテーブル追加時制約added | E-30 | ○ |
| C-100 | ForeignKeyConstraintsItem getChangeStatusの制約追加でadded | E-30 | ○ |
| C-101 | pushToDataLayerがdataLayerにプッシュ | E-31 | ○ |
| C-102 | pushToDataLayerのdataLayer初期化 | E-31 | ○ |
| C-103 | toggleLogEventのイベントプッシュ | E-32 | ○ |
| C-104 | selectTableLogEventのイベントプッシュ | E-33 | ○ |
| C-105 | clickLogEventのイベントプッシュ | E-34 | ○ |
| C-106 | useSchemaOrThrowのコンテキスト取得 | E-35 | ○ |
| C-107 | useSchemaOrThrowのProvider外エラー | E-35 | ○ |
| C-108 | useUserEditingOrThrowのコンテキスト取得 | E-36 | ○ |
| C-109 | useUserEditingOrThrowのProvider外エラー | E-36 | ○ |
| C-110 | zIndex定数の値 | E-37 | ○ |
| C-111 | NON_RELATED_TABLE_GROUP_NODE_ID定数の値 | E-37 | △ |

## 4) 不足情報（Unknown / Missing）
- **UT-ERD-063（空文字列圧縮）**：pakoライブラリの空文字列処理の仕様ドキュメントが参照できなかったため、実際の出力は実行時テストで確認が必要
  - 候補：pakoライブラリドキュメント / 実行時テスト
- **UT-ERD-066（解凍エラー）**：pakoライブラリのinflateがどのようなエラーをスローするかの正確な仕様が未確認
  - 候補：pakoライブラリAPIドキュメント / エラーハンドリングテスト
- **UT-ERD-111（定数値確認）**：定数値の妥当性を示す仕様書が存在しない。現在の値が設計意図に沿っているかは開発者確認が必要
  - 候補：設計意図ドキュメント / 開発者ヒアリング

## 5) リスクフラグ（レビュー観点）
- **0（低リスク）**: スキーマバリデーション関連（UT-ERD-067〜078）- valibotの動作は安定
- **0（低リスク）**: 定数・型定義関連（UT-ERD-110〜111）- 単純な値確認
- **1（中リスク）**: Cookie操作関連（UT-ERD-023〜030）- ブラウザ環境依存
- **1（中リスク）**: URL生成関連（UT-ERD-017〜022）- window.location依存
- **1（中リスク）**: 圧縮/解凍関連（UT-ERD-061〜066）- 外部ライブラリ依存
- **2（高リスク）**: 自動レイアウト関連（UT-ERD-040〜051）- ELKライブラリの複雑な処理に依存

## 6) レビュアーチェックリスト（最小）
- [ ] convertSchemaToNodesの正常系テストケース（UT-ERD-001〜004）が実際のスキーマ構造をカバーしているか確認
- [ ] highlightNodesAndEdgesのテストケースがすべてのハイライト状態を網羅しているか確認
- [ ] Cookie操作のSSR環境テスト（UT-ERD-025）が適切に分離されているか確認
- [ ] 自動レイアウトテスト（UT-ERD-040〜051）がELKライブラリのモックを適切に使用しているか確認
- [ ] 圧縮/解凍テスト（UT-ERD-061〜066）の可逆性テストが含まれているか確認
- [ ] getChangeStatus系関数のテストケースがすべての変更ステータスパターンをカバーしているか確認
- [ ] Provider外エラーテスト（UT-ERD-107, 109）が適切なエラーメッセージを検証しているか確認
