Newer
Older
TelosDB / tests / e2e / README.md

E2E テスト(WebDriver + tauri-driver)

TelosDB の UI を WebDriver で操作し、表示・動作を検証します。

前提

  1. tauri-driver のインストール

    cargo install tauri-driver --locked
  2. プラットフォーム別ドライバ

    • Windows: edgedriver が devDependency に含まれており、初回実行時に Edge のバージョンに合わせて Edge Driver を自動ダウンロードする。手動で用意する場合は Microsoft Edge Driver を PATH に通すか、TELOS_EDGE_DRIVER にバイナリのパスを指定する。
    • Linux: WebKitWebDriver をインストール(例: Debian 系では sudo apt install webkit2gtk-driver)。CI では仮想ディスプレイ用に xvfb が必要な場合あり。
    • macOS: デスクトップ向け WebDriver は非対応のため、この E2E は Windows / Linux で実行すること。

起動待ち

各 spec の before()起動が完了するまで待機してからテストを開始する。

  • ヘルパー: tests/e2e/helpers/wait-for-app.jswaitForAppReady(browser)
  • 手順: (1) フロントのメイン UI(#query)が表示されるまで最大 20 秒待つ (2) MCP (3001) の /edition が応答するまで最大 20 秒ポーリング
  • これにより「ウィンドウは開いたがフロントや MCP がまだ準備できていない」状態でアサートして失敗することを防ぐ。

実行

プロジェクトルートで:

# 依存のインストール(未実施なら)
npm install

# E2E 用にビルドしてからテスト実行(初回はビルドに時間がかかります)
npm run test:e2e

事前にビルドだけしたい場合:

npm run build:e2e

その後、バイナリのパスを環境変数で渡してテストのみ実行する例:

# Windows でルートに target がある場合の例
set TELOS_E2E_APP=D:\develop\TelosDB\target\debug\app.exe
npm run test:e2e

スペック

  • tests/e2e/specs/app.spec.js … ウィンドウタイトル、ヘッダー、検索 UI の表示と検索実行の確認。
  • tests/e2e/specs/docs-edit-drawing.spec.js … 文書編集モーダル・ツールバーの描画確認。
  • tests/e2e/specs/screenshot-docs-modal.spec.js … 編集モーダルのスクリーンショット取得(npm run test:e2e:screenshot)。

検索の可否をログで確認する

バックエンドは検索実行時に次のログを出す(RUST_LOG=info で表示)。

  • [search] query="..." limit=N min_score=X … 検索が開始された
  • [search] FTS hits=N … FTS5 のヒット件数
  • [search] Pro vector hits=N / [search] Community LSA vector hits=N … ベクトル検索のヒット件数(該当する方のみ)
  • [search] result_count=N ok=true|false … 最終結果件数と成否

手動でアプリを起動して検索するときは、ターミナルの stderr に上記が出る。E2E でアプリを tauri-driver 経由で起動している場合は、アプリの stderr がそのまま見えないことがあるため、検索の可否は E2E の「検索がヒットする」spec の成否と、必要なら TELOS_LOG_FILE=log.txt などでログをファイルに出して確認する。

注意

  • テスト実行中は TelosDB のウィンドウが開きます。操作は WebDriver が行うため、手で触らないでください。
  • MCP サーバ(3001)がアプリ起動時に立ち上がるため、ポートが他プロセスで占有されていないことを確認してください。