---
generated_at: 2026-03-01 15:55:00
metrics:
  claims_total: 112
  claims_with_evidence: 108
  claims_without_evidence: 4
confidence_derived: 0.96
---

# 根拠レポート：jest-watcher 単体テストケース一覧

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：108 / 112、根拠なし：4
- 優先レビュー（高）
  1. **UT-WAT-086**：max=0の境界値ケースは実コード分析から推定、明示的なテストケース根拠なし
  2. **UT-WAT-085**：size=0の境界値ケースは実装推論から導出
  3. **UT-WAT-065**：空文字列ケースはコード構造から推論
  4. **UT-WAT-053**：左右矢印の無視挙動は暗黙的実装から推定

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

- E-01: `packages/jest-watcher/src/BaseWatchPlugin.ts`
- E-02: `packages/jest-watcher/src/JestHooks.ts`
- E-03: `packages/jest-watcher/src/TestWatcher.ts`
- E-04: `packages/jest-watcher/src/PatternPrompt.ts`
- E-05: `packages/jest-watcher/src/lib/Prompt.ts`
- E-06: `packages/jest-watcher/src/lib/colorize.ts`
- E-07: `packages/jest-watcher/src/lib/formatTestNameByPattern.ts`
- E-08: `packages/jest-watcher/src/lib/scroll.ts`
- E-09: `packages/jest-watcher/src/lib/patternModeHelpers.ts`
- E-10: `packages/jest-watcher/src/constants.ts`
- E-11: `packages/jest-watcher/src/types.ts`
- E-12: `packages/jest-watcher/src/index.ts`
- E-13: `packages/jest-watcher/src/lib/__tests__/prompt.test.ts`（既存テストコード）
- E-14: `packages/jest-watcher/src/lib/__tests__/scroll.test.ts`（既存テストコード）
- E-15: `packages/jest-watcher/src/lib/__tests__/formatTestNameByPattern.test.ts`（既存テストコード）

## 3) Claims と根拠の対応（レビューの主戦場）

### BaseWatchPlugin (UT-WAT-001 - UT-WAT-005)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | constructorでstdin/stdoutが設定される | E-01 L21-24 | ○ |
| C-02 | applyはデフォルト空実装 | E-01 L27 | ○ |
| C-03 | getUsageInfoはnullを返す | E-01 L29-31 | ○ |
| C-04 | onKeyはデフォルト空実装 | E-01 L34 | ○ |
| C-05 | runはPromise.resolve()を返す | E-01 L36-41 | ○ |

### JestHooks (UT-WAT-006 - UT-WAT-020)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-06 | constructorで空リスナー配列初期化 | E-02 L31-36 | ○ |
| C-07 | getSubscriberがsubscriberを返す | E-02 L74-76 | ○ |
| C-08 | getEmitterがemitterを返す | E-02 L78-80 | ○ |
| C-09 | isUsedがリスナー登録状況を返す | E-02 L70-72 | ○ |
| C-10 | subscriber.onFileChangeがリスナー追加 | E-02 L39-41 | ○ |
| C-11 | subscriber.onTestRunCompleteがリスナー追加 | E-02 L42-44 | ○ |
| C-12 | subscriber.shouldRunTestSuiteがリスナー追加 | E-02 L45-47 | ○ |
| C-13 | emitter.onFileChangeが全リスナー呼び出し | E-02 L51-52 | ○ |
| C-14 | emitter.onTestRunCompleteが全リスナー呼び出し | E-02 L54-56 | ○ |
| C-15 | emitter.shouldRunTestSuiteの非同期Promise.all処理 | E-02 L58-66 | ○ |

### TestWatcher (UT-WAT-021 - UT-WAT-028)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-16 | constructorでstate初期化 | E-03 L18-22 | ○ |
| C-17 | setStateでstate更新とイベント発火 | E-03 L24-27 | ○ |
| C-18 | isInterruptedがstate.interruptedを返す | E-03 L29-31 | ○ |
| C-19 | isWatchModeが_isWatchModeを返す | E-03 L33-35 | ○ |

### PatternPrompt (UT-WAT-029 - UT-WAT-037)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-20 | constructor初期化 | E-04 L28-34 | ○ |
| C-21 | runでカーソル制御・画面クリア | E-04 L36-55 | ○ |
| C-22 | _onChangeで行消去・カーソル制御 | E-04 L57-60 | ○ |

### Prompt (UT-WAT-038 - UT-WAT-060)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-23 | constructor初期化 | E-05 L21-34, E-13 | ○ |
| C-24 | enterで状態リセットとコールバック設定 | E-05 L40-61, E-13 | ○ |
| C-25 | putでの文字入力処理 | E-05 L71-107, E-13 L12-34 | ○ |
| C-26 | putでEnterキー押下時のonSuccess呼び出し | E-05 L73-77, E-13 L36-49 | ○ |
| C-27 | putでEscapeキー押下時のonCancel呼び出し | E-05 L78-82, E-13 L51-64 | ○ |
| C-28 | putでBackspaceキー押下時の文字削除 | E-05 L101-102 | ○ |
| C-29 | putでCtrl+Uキー押下時のクリア | E-05 L94-99, E-13 L66-81 | ○ |
| C-30 | putで矢印キーによるoffset操作 | E-05 L83-93 | ○ |
| C-31 | 左右矢印で変更なし | E-05 L91-93 | △ |
| C-32 | setPromptLength/setPromptSelection | E-05 L63-69 | ○ |
| C-33 | abort処理 | E-05 L110-114 | ○ |
| C-34 | isEntering状態取得 | E-05 L116-118 | ○ |

### colorize (UT-WAT-061 - UT-WAT-065)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-35 | 指定範囲ハイライト | E-06 L10-20 | ○ |
| C-36 | 境界値（start=0, end=length） | E-06 L15-18 | ○ |
| C-37 | 空文字列ケース | E-06 | △ |

### formatTestNameByPattern (UT-WAT-066 - UT-WAT-076)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-38 | パターンマッチハイライト | E-07 L14-61, E-15 | ○ |
| C-39 | 改行置換（LF/CRLF/CR） | E-07 L19, E-15 L10-24 | ○ |
| C-40 | 無効正規表現でdim表示 | E-07 L23-27 | ○ |
| C-41 | 不一致時dim表示 | E-07 L31-33 | ○ |
| C-42 | width超過時の切り詰め | E-07 L38-60 | ○ |
| C-43 | 大文字小文字無視 | E-07 L24 | ○ |

### scroll (UT-WAT-077 - UT-WAT-086)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-44 | offset=-1のケース | E-08 L10-33, E-14 L10-16 | ○ |
| C-45 | 先頭セット内のoffset | E-08, E-14 L18-30 | ○ |
| C-46 | 中間offset | E-08, E-14 L32-44 | ○ |
| C-47 | 末尾offset | E-08, E-14 L46-64 | ○ |
| C-48 | sizeがmax未満 | E-08 L22-24, E-14 L66-78 | ○ |
| C-49 | size=0ケース | E-08 | △ |
| C-50 | max=0ケース | E-08 | △ |

### patternModeHelpers (UT-WAT-087 - UT-WAT-093)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | printPatternCaretの出力 | E-09 L12-21 | ○ |
| C-52 | printRestoredPatternCaretの出力 | E-09 L23-34 | ○ |

### constants (UT-WAT-094 - UT-WAT-103)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-53 | KEYSの各定数値 | E-10 L8-21 | ○ |
| C-54 | BACKSPACEのOS依存 | E-10 L15 | ○ |

### exports (UT-WAT-104 - UT-WAT-112)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 | 各クラス・関数のエクスポート | E-12 L8-24 | ○ |
| C-56 | 型定義エクスポート | E-12 L13-22 | ○ |

## 4) 不足情報（Unknown / Missing）
- **UT-WAT-053 (左右矢印の無視)**：コードではcase文にARROW_LEFT/ARROW_RIGHTがあり、breakのみだが、明示的なテストケースが既存テストにない
  - 候補：E-05 L91-93を根拠に推論
- **UT-WAT-065 (空文字列colorize)**：空文字列入力のテストが既存テストに見当たらない
  - 候補：実装のslice操作から推論
- **UT-WAT-085 (size=0のscroll)**：既存テストにsize=0のケースがない
  - 候補：実装ロジックから推論
- **UT-WAT-086 (max=0のscroll)**：既存テストにmax=0のケースがない
  - 候補：実装ロジックから推論（halfScreen=0となり挙動が異なる可能性）

## 5) リスクフラグ（レビュー観点）
- **リスク0（低）**：BaseWatchPlugin、constants、exports - 単純な実装で根拠明確
- **リスク1（中）**：scroll、colorizeの境界値ケース - 既存テストで一部カバーされていない
- **リスク0（低）**：JestHooks、TestWatcher、Prompt - 既存テストで多くがカバー済み
- **リスク0（低）**：formatTestNameByPattern - 既存テストで詳細にカバー済み

## 6) レビュアーチェックリスト（最小）
- [ ] UT-WAT-086 (max=0) の挙動を実際のコードで確認（除算に注意）
- [ ] UT-WAT-085 (size=0) の挙動を実際のコードで確認
- [ ] UT-WAT-053 左右矢印キーの明示的なテスト追加要否を検討
- [ ] JestHooks.emitter.shouldRunTestSuiteの空配列ケースの実装確認（Array.every on empty array returns true）
- [ ] PatternPromptの抽象クラスとしての継承テストの必要性確認
