AI Page Discovery — テストケース
単体テスト
| ケース | 期待結果 |
|---|---|
| サイトマップと重複リンク | 同一オリジンのHTMLページを重複排除 |
| フラグメントとトラッキングパラメータ | 除去し、その他のクエリを維持 |
| プライベートIPと外部リダイレクト | 接続前に拒否 |
| robots.txtの禁止と取得失敗 | 対象ページにアクセスしない |
| 操作用リンクとダウンロード | 探索から除外 |
| ページ数、深さ、サイトマップ数、候補数の上限 | 指定範囲内で処理 |
| チェックポイントから継続 | 残りのURLを処理 |
| 完了済みメッセージの再実行 | 再取得せず結果を維持 |
| S3とSQSの失敗 | メッセージを再試行 |
| プラグインのプロジェクト切り替え | 古いレスポンスを表示しない |
| URLプレビューから選択 | URL欄を設定し、インポートは別操作 |
.xmlサイトマップの直接入力 |
robots.txtやページHTMLへアクセスせず、サイトマップ記載URLを取得 |
| 同じ親パスのURL | HTML構造に関係なく正確な親パスで分類 |
| プラグインの探索プレビュー | URLをネストしたパスツリーで表示し、自動選択しない |
ローカル検証
uv run pytest apps/page-discovery/__tests__/を実行します。モックとローカルHTTPフィクスチャを使用し、顧客サイトやAWS環境にはアクセスしません。バックエンドとプラグインのテストは各リポジトリで実行します。