Skip to content

[Feature] Phase 6 E2E統合テスト(チーム機能検証) #80

@Kewton

Description

@Kewton

概要

Phase 6 のチーム向け機能(共有設定、インデックス共有、status拡張)を通したE2E統合テストを作成する。

: マルチリポジトリ横断検索(Issue #78)は未実装のため、本Issueのスコープから除外する。

テストの位置づけ

  • 既存テスト: 個別機能の単体・結合テスト(cli_export, cli_import, cli_status, e2e_verify等)
  • 本Issue: チーム運用シナリオを通した統合フローテスト(複数機能の連携を検証)

テストシナリオ

  1. 共有設定フルフロー: commandindex.tomlsearch.default_limit=5 を設定 → index → config show で設定反映を確認
  2. 設定優先順位: config.local.toml > commandindex.toml > デフォルト の3段階優先順位を検証(環境変数オーバーライドはload_configに未実装のため対象外)
  3. config show: 有効設定の表示(APIキーのマスク確認を含む)
  4. インデックスエクスポート/インポート: index → export → clean → import → search が動作する(export/importは--pathオプション未対応のためcurrent_dir切替で対応)
  5. status --verify: インデックスの整合性チェック
  6. status --detail: 詳細統計情報(coverage/staleness/storage)の表示
  7. status --format json: JSON出力フォーマット検証

テスト環境の前提

  • 各テストは tempfile::tempdir() で独立した一時ディレクトリを使用
  • 必要に応じてGit初期化(staleness情報テスト用)
  • テスト間の依存関係なし(独立実行可能)
  • テストファイルは tests/e2e_team_workflow.rs にまとめる(テストバイナリ数の増加を抑制)

テストヘルパーの拡張

tests/common/mod.rs に以下のヘルパーを追加:

  • write_commandindex_toml(): チーム共有設定ファイル作成
  • write_config_local_toml(): ローカル設定ファイル作成
  • init_git_repo(): Git初期化(staleness情報テスト用)

既存テストとの関係

  • tests/e2e_export_import.rs (2テスト): 基本的なexport/importフロー → 本Issueではsearch連携の統合フローを追加
  • tests/e2e_verify.rs (4テスト): verify基本テスト → 本Issueでは重複しない範囲でE2Eフローに組み込み
  • tests/cli_status.rs (26テスト): status単体テスト → 本IssueではCLI経由のE2E統合テストを追加
  • tests/cli_export.rs (6テスト), tests/cli_import.rs (9テスト): 単体テスト

受け入れ基準

  • 上記7シナリオのテストが全てPASS
  • テストは独立して実行可能(tempfile::tempdir()使用)
  • cargo test / clippy / fmt 全パス
  • 既存テストとの重複を最小限にする

依存 Issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions