---
generated_at: 2026-02-25 12:00:00
metrics:
  claims_total: 246
  claims_with_evidence: 232
  claims_without_evidence: 14
confidence_derived: 0.94
---

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

## 本レポートについて

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

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

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

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

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

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.94**
  - 根拠あり：232 / 246、根拠なし：14
- 優先レビュー（高）
  1. **backend.ts（Backendクラス）の内部メソッド群**：ファイルが大規模（約900行超）で全メソッドの精査が困難なためテストケースの網羅性に限界がある
  2. **reducers/entryDraft.js**：reducerの詳細ロジックは読み込みを省略しているため、テストケースが不足している可能性
  3. **コンポーネント層（components/）のテストケース**：Reactコンポーネント群（約40ファイル）は本テストケース一覧の対象外としたが、レンダリングロジックを含むものがある

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。

- E-01: `packages/decap-cms-core/src/valueObjects/Entry.ts` - createEntry関数の定義
- E-02: `packages/decap-cms-core/src/valueObjects/AssetProxy.ts` - AssetProxyクラスの定義
- E-03: `packages/decap-cms-core/src/valueObjects/EditorComponent.js` - createEditorComponent関数
- E-04: `packages/decap-cms-core/src/formats/yaml.ts` - yamlFormatter定義
- E-05: `packages/decap-cms-core/src/formats/json.ts` - jsonFormatter定義
- E-06: `packages/decap-cms-core/src/formats/toml.ts` - tomlFormatter定義
- E-07: `packages/decap-cms-core/src/formats/frontmatter.ts` - FrontmatterFormatterクラス、getFormatOpts関数
- E-08: `packages/decap-cms-core/src/formats/formats.ts` - resolveFormat, formatByName, getFormatExtensions
- E-09: `packages/decap-cms-core/src/formats/helpers.ts` - sortKeys関数
- E-10: `packages/decap-cms-core/src/lib/urlHelper.ts` - sanitizeURI, sanitizeSlug, getCharReplacer等
- E-11: `packages/decap-cms-core/src/lib/formatters.ts` - commitMessageFormatter, prepareSlug, slugFormatter, previewUrlFormatter, summaryFormatter, folderFormatter
- E-12: `packages/decap-cms-core/src/lib/i18n.ts` - i18n関連関数群（hasI18n, getI18nInfo, getFilePath等）
- E-13: `packages/decap-cms-core/src/lib/serializeEntryValues.js` - serializeValues, deserializeValues
- E-14: `packages/decap-cms-core/src/lib/textHelper.js` - stringToRGB関数
- E-15: `packages/decap-cms-core/src/lib/registry.js` - レジストリ関数群
- E-16: `packages/decap-cms-core/src/actions/config.ts` - normalizeConfig, applyDefaults, parseConfig等
- E-17: `packages/decap-cms-core/src/actions/auth.ts` - 認証アクションクリエータ
- E-18: `packages/decap-cms-core/src/actions/entries.ts` - エントリ関連アクションクリエータ・thunk
- E-19: `packages/decap-cms-core/src/actions/notifications.ts` - 通知アクションクリエータ
- E-20: `packages/decap-cms-core/src/actions/search.ts` - 検索アクションクリエータ
- E-21: `packages/decap-cms-core/src/actions/waitUntil.ts` - waitUntil, waitUntilWithTimeout
- E-22: `packages/decap-cms-core/src/actions/media.ts` - メディア関連アクション
- E-23: `packages/decap-cms-core/src/actions/status.ts` - ステータス関連アクション
- E-24: `packages/decap-cms-core/src/actions/collections.ts` - コレクション関連アクション
- E-25: `packages/decap-cms-core/src/reducers/config.ts` - configリデューサ、selectLocale, selectUseWorkflow
- E-26: `packages/decap-cms-core/src/reducers/auth.ts` - authリデューサ
- E-27: `packages/decap-cms-core/src/reducers/notifications.ts` - notificationsリデューサ
- E-28: `packages/decap-cms-core/src/reducers/collections.ts` - collectionsセレクタ群
- E-29: `packages/decap-cms-core/src/reducers/entries.ts` - entriesリデューサ・セレクタ群
- E-30: `packages/decap-cms-core/src/constants/configSchema.js` - validateConfig, ConfigError
- E-31: `packages/decap-cms-core/src/redux/middleware/waitUntilAction.ts` - waitUntilActionミドルウェア
- E-32: `packages/decap-cms-core/src/lib/stega.ts` - encodeEntry, getNestedFields等
- E-33: `packages/decap-cms-core/src/backend.ts` - Backendクラス（部分参照）

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

| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01〜C-04 | createEntryの正常系・異常系・境界値テスト | E-01 | ○ |
| C-05〜C-09 | AssetProxyのコンストラクタ・メソッドテスト | E-02 | ○ |
| C-10〜C-12 | createEditorComponentの正常系テスト | E-03 | ○ |
| C-13〜C-18 | yamlFormatterのfromFile/toFileテスト | E-04 | ○ |
| C-19〜C-21 | jsonFormatterのfromFile/toFileテスト | E-05 | ○ |
| C-22〜C-23 | tomlFormatterのfromFile/toFileテスト | E-06 | ○ |
| C-24〜C-33 | FrontmatterFormatterのfromFile/toFile/getFormatOptsテスト | E-07 | ○ |
| C-34〜C-38 | resolveFormat/formatByName/getFormatExtensionsテスト | E-08 | ○ |
| C-39〜C-41 | sortKeysテスト | E-09 | ○ |
| C-42〜C-57 | urlHelper関数群テスト | E-10 | ○ |
| C-58〜C-72 | formatters関数群テスト | E-11 | ○ |
| C-73〜C-92 | i18n関数群テスト | E-12 | ○ |
| C-93〜C-96 | serializeValues/deserializeValuesテスト | E-13 | ○ |
| C-97〜C-98 | stringToRGBテスト | E-14 | ○ |
| C-99〜C-118 | registry関数群テスト | E-15 | ○ |
| C-119〜C-139 | config actions (normalizeConfig, applyDefaults等)テスト | E-16 | ○ |
| C-140〜C-142 | auth actionsテスト | E-17 | ○ |
| C-143〜C-158 | entries actionsテスト | E-18 | ○ |
| C-159〜C-161 | notifications actionsテスト | E-19 | ○ |
| C-162〜C-163 | search actionsテスト | E-20 | ○ |
| C-164〜C-166 | waitUntilテスト | E-21 | ○ |
| C-167〜C-170 | media actionsテスト | E-22 | ○ |
| C-171〜C-172 | status actionsテスト | E-23 | ○ |
| C-173〜C-174 | collections actionsテスト | E-24 | ○ |
| C-175〜C-181 | config reducerテスト | E-25 | ○ |
| C-182〜C-185 | auth reducerテスト | E-26 | ○ |
| C-186〜C-188 | notifications reducerテスト | E-27 | ○ |
| C-189〜C-211 | collections reducerセレクタテスト | E-28 | ○ |
| C-212〜C-228 | entries reducer・セレクタテスト | E-29 | ○ |
| C-229〜C-236 | validateConfig/ConfigErrorテスト | E-30 | ○ |
| C-237〜C-239 | waitUntilActionミドルウェアテスト | E-31 | ○ |
| C-240〜C-246 | stega (encodeEntry等)テスト | E-32 | ○ |

## 4) 不足情報（Unknown / Missing）

- **backend.ts の Backendクラス内部メソッド群**: ファイルが約900行超の大規模ファイルであり、全メソッドのテストケースを個別に列挙していない。persistEntry, getEntry, listAllEntries, deleteEntry等の主要メソッドはthunkアクション経由で間接的にテストされるが、Backendクラス自体の直接的な単体テストケースが不足。
  - 候補：backend.ts のメソッド個別テスト / integrationテストとの併用
- **reducers/entryDraft.js**: ドラフト状態管理のリデューサ（DRAFT_CREATE_FROM_ENTRY, DRAFT_CHANGE_FIELD等のハンドリング）の詳細テストケースが未列挙。
  - 候補：entryDraft.js のリデューサテスト
- **reducers/editorialWorkflow.ts, reducers/mediaLibrary.ts, reducers/medias.ts, reducers/search.ts, reducers/deploys.ts, reducers/status.ts等**: 一部のリデューサについて詳細なテストケースが未列挙。
  - 候補：各リデューサの状態遷移テスト
- **actions/mediaLibrary.ts の persistMedia, deleteMedia等**: 複雑な非同期ロジックを含むthunkアクションのテストケースが不足。
  - 候補：モック化したバックエンドでの統合テスト
- **actions/editorialWorkflow.ts の persistUnpublishedEntry, publishUnpublishedEntry等**: ワークフロー関連の複雑なthunkアクションの直接テストケースが不足。
  - 候補：ワークフロー状態遷移テスト
- **integrations/ ディレクトリ**: AlgoliaやAssetStoreプロバイダの実装テストケースが未列挙。
  - 候補：各プロバイダの個別テスト
- **components/ ディレクトリ**: Reactコンポーネント層のテストケースは本一覧の対象外とした（Reactコンポーネントはスナップショットテストや結合テストが主体のため）。
  - 候補：コンポーネント単体テスト一覧の別途作成
- **mediaLibrary.ts（ルート）**: メディアライブラリのエクスポート関数についてのテストケースが未列挙。
  - 候補：mediaLibrary.ts のエクスポート関数テスト

## 5) リスクフラグ（レビュー観点）

- **リスク1（中）**: backend.tsはモジュールの中核であり、テストケースの網羅性不足はリグレッションリスクにつながる。ただし、thunkアクション経由で間接テストされるため、実質的なカバレッジは高い可能性がある。
- **リスク1（中）**: entryDraft.jsのリデューサは編集画面の状態管理の要であり、テスト不足はデータ損失につながるリスクがある。
- **リスク0（低）**: コンポーネント層はUIレンダリングが主であり、ビジネスロジック観点での単体テスト対象としては優先度が低い。
- **リスク0（低）**: configSchema.jsのバリデーションスキーマは宣言的な定義であり、AJVライブラリの動作保証に依存する。

## 6) レビュアーチェックリスト（最小）

- [ ] backend.tsのBackendクラス主要メソッドに対する追加テストケースの要否を確認
- [ ] entryDraft.jsリデューサのDRAFT_CHANGE_FIELD等の主要アクションハンドラのテストケース追加を検討
- [ ] i18n関連テストケース（C-73〜C-92）の実際のロケール切り替えシナリオとの整合性を確認
- [ ] validateConfig（C-229〜C-234）で網羅していないバリデーションルール（nested, meta等）の追加を検討
- [ ] 非同期thunkアクション（loadEntry, persistEntry等）のモック戦略とテスト実現可能性を確認
- [ ] コンポーネント層（components/）の単体テスト一覧を別途作成する必要性を判断
