active: true
derived: false
groups:
- CLI
header: |
  CLI テスト
level: 2.21
links:
- SPEC021: B5LCZ6KHXCjZ4tt5aHXeSl7qz3bz0-pxetrg_5lZIhE=
normative: true
ref: ''
references:
- path: tests/integration/cli/test_cli.py
  type: file
reviewed: X50iVTTjFyI5Dgje-US3NiOWI070UHPy-lfUqHWCkBY=
text: |
  ## 目的

  CLI はユーザーがキャッシュの状況確認・管理を行う主要インターフェースであり、コマンドの不具合はユーザー体験と運用効率に直接影響する。`CliRunner` によるコマンド実行と出力の正確性を E2E で検証する。

  ## 検証観点

  - **list コマンド**: キャッシュ済みタスクの一覧が正しく表示されること。DBが空の場合に適切なメッセージが表示されること
  - **show コマンド**: 指定タスクの詳細情報（func_name, input_key, created_at, result サイズ等）が正しく表示されること
  - **stats コマンド**: キャッシュ統計（総件数、関数別件数、ストレージ使用量等）が正確に表示されること
  - **clear コマンド**: 確認プロンプト後にキャッシュが削除されること。`--force` フラグでプロンプトがスキップされること
  - **gc / prune コマンド**: 有効期限切れタスクの削除と孤立Blobの清掃が正しく実行されること
  - **E2E パイプライン**: `@mark` でキャッシュ保存 → `beautyspot list` で確認 → `beautyspot clear` で削除、という一連のワークフローが正常に動作すること
  - **エラー時の終了コード**: 不正な引数やDB不在時に非ゼロの終了コードが返ること
