コンテンツにスキップ

総合検証チェックリスト (End-to-End Testing)

全プラグイン(Client, Store, Main)の連携動作を確認するためのテストパターンです。

前提条件

  • Storeサイト: Software License Manager がインストール済み、WooCommerce設定完了。
  • Mainサイト: Store Sync Receiver がインストール済み。
  • Clientサイト: Cross Poster Pro がインストール済み。
  • アカウント: MainとStoreで、同一の username を持つテストユーザーが存在すること。
  • Config: 全サイトの wp-config.php に適切な定数(API URLやSecret Key)が設定されていること。

1. Store -> Main 連携 (バッジ機能)

ケース 1-A: 新規購入 (Active)

  • 操作: Storeサイトで、テストユーザーとして「Cross Poster Pro (Subscription)」を購入(注文完了)する。
  • 期待動作:
    1. Mainサイトの該当ユーザーのメタデータ storesync_license_cross-poster-pro が作成される。
    2. ステータスが active になっている。
    3. Mainサイトのフォーラム投稿欄に [Cross Poster Pro][優先サポート] バッジが表示される。

ケース 1-B: サブスクリプション途中キャンセル (Pending Cancel)

  • 操作: Storeサイトのマイページで、サブスクリプションを「キャンセル」する。
  • 期待動作:
    1. Mainサイトへ通知が飛ぶ。
    2. ステータスは active のまま維持される(有効期限までは使えるため)。
    3. バッジは 消えない(表示され続ける)。

ケース 1-C: 有効期限切れ (Expired)

  • 操作:
    1. Store管理画面から、サブスクリプションのステータスを「期限切れ (Expired)」に手動変更する。
    2. または、MainサイトのDBを直接操作して expires_at を過去の日付に変更する。
  • 期待動作:
    1. バッジが 消える

ケース 1-D: ユーザー設定 (Toggle)

  • 操作: Mainサイトのプロフィール設定で「Show Badges」のチェックを外して保存する。
  • 期待動作:
    1. ライセンスが有効であっても、バッジが 表示されない

2. Client -> Store 連携 (ライセンス認証・更新)

ケース 2-A: ライセンス有効化 (Activation)

  • 操作: Clientサイト (Cross Poster Pro 設定画面) で、Storeから発行されたライセンスキーを入力し保存・有効化する。
  • 期待動作:
    1. 「有効化されました」というメッセージが表示される。
    2. Storeサイトの管理画面 (License Manager) で、そのキーの使用回数 (Activation count) が増えている。
    3. プラグインのPro機能がアンロックされる。

ケース 2-B: 自動アップデート (Update Check)

  • 準備: Store側のプラグインバージョンを、Client側より新しいもの(例: 9.9.9)にし、Zipを配置する。
  • 操作: Clientサイトの「ダッシュボード > 更新」を確認する。
  • 期待動作:
    1. 「Cross Poster Pro」の更新通知が表示される。
    2. 「更新」ボタンを押すと、エラーなくアップデートが完了する。

ケース 2-C: 無効なキーでの挙動

  • 操作: デタラメなキーを入力する、またはStore側でキーを「無効 (Inactive)」にする。
  • 期待動作:
    1. Client側でエラーメッセージが表示される。
    2. Pro機能がロックされる(または警告が出る)。

ケース 2-D: 埋め込みライセンスキー (Embedded Key)

  • 操作: StoreサイトのAPI経由(またはマイページ)からZipファイルをダウンロードする。
  • 期待動作:
    1. ダウンロードしたZipファイルを解凍すると、ルート(またはプラグインフォルダ直下)に license-key.php が存在する。
    2. license-key.php の中身が、購入したライセンスキーと一致している。
    3. このZipを新規サイトにインストールし有効化すると、ライセンス認証操作なしで 自動的に有効化完了メッセージが表示される。

3. Store管理画面 (Admin UI)

ケース 3-A: Active Sites (稼働状況)

  • 操作: Store管理画面で「Active Sites」メニューを開く。
  • 期待動作:
    1. 現在有効化されているドメインの一覧が表示される。
    2. ライセンスキー、製品名 (Formatting適用済み)、Installed日時、Last Checked日時が正しく表示されている。

ケース 3-B: UIクリーンアップ

  • 操作: Store管理画面全体を見回す。
  • 期待動作:
    1. 「WooCommerce > 設定 > ライセンスマネージャー」タブが存在しない。
    2. サイドバーに「ホーム」「支払い (Payments)」「Subscriptions (Top Level)」等の不要なメニューが表示されていない。
    3. 「License Manager」のPro版購入を促す広告バナーやアップセル表示が一切ない。

ケース 3-C: Analytics Dashboard (分析画面)

  • 操作: Store管理画面で「Active Sites」メニューを開く。
  • 期待動作:
    1. 画面上部に「Activation Analytics」ダッシュボードが表示されている。
    2. 「Total Sites」「New Today」の数値が正しい。
    3. 期間切り替え(7/30/90/365日)プルダウンが機能し、折れ線グラフが変化する。
    4. 製品フィルタプルダウンで製品を切り替えると、数値とグラフが絞り込まれる。
    5. 折れ線グラフに「Total Active (累計)」と「New Daily (新規)」の2軸が表示されている。
    6. 円グラフ(Product Share)が表示されている。

4. アンインストール (Cleanup)

ケース 4-A: プラグイン削除

  • 操作: ClientサイトおよびMainサイトで、各プラグインを「削除」する。
  • 期待動作:
    1. wp_optionswp_usermeta から、プラグイン固有のデータ (crp_pro_settings, storesync_license_* 等) がきれいに消えていること。

5. 追加機能検証 (Phase 7)

ケース 5-A: Historical Data (履歴保存)

  • 操作: Clientサイトでライセンスを「無効化 (Deactivate)」する。
  • 期待動作:
    1. Store管理画面「Active Sites」一覧の「すべて (All)」タブに、そのサイトが残っている。
    2. ステータスが「Private」になっている。
    3. Analyticsダッシュボードの「Total Active」数からは除外されている。

ケース 5-B: Two-way Sync (プロフィール同期)

  • 操作: Mainサイトのプロフィール画面で「名 (First Name)」や「メールアドレス」を変更保存する。
  • 期待動作:
    1. Storeサイトの当該ユーザーのプロフィール(名・姓)が自動的に更新されている。
    2. メールアドレスは更新されないこと(Auth0環境での整合性維持のため同期無効化済み)。

ケース 5-C: Frontend Manager (マイページ管理)

  • 操作: Storeサイトに購入ユーザーでログインし、ショートコード [slm_my_licenses] を設置したページを開く。
  • 期待動作:
    1. 自分の保有するライセンスと、現在有効化されているサイト一覧が表示される。
    2. 「Deactivate」ボタンを押すと、そのサイトのライセンスが解除される。

ケース 5-D: Bulk Sync (一括同期)

  • 操作: Store管理画面「Store Sync Settings」の「Tools」エリアで「Sync All Subscriptions」ボタンを押す。
  • 期待動作:
    1. プログレスバーが進み、エラーなく完了する。
    2. Mainサイト側でバッジが再同期される(データの修復が確認できる)。

ケース 5-E: Webhook Settings

  • 操作: Store管理画面「Store Sync Settings」で「Target Webhook URL」を空欄にして保存、または変更して保存する。
  • 期待動作:
    1. 設定値が保存される。
    2. 同期処理が設定されたURLに対して行われる(空欄の場合はデフォルトURL)。

6. デバッグ時のヒント (Logs)

問題が発生した場合は、以下のログを確認してください。

  1. Storeサイト: /wp-content/debug.log
    • キーワード: SLM Sync Error, License Manager
  2. Webサーバーのアクセスログ
    • StoreからMainへの POST /wp-json/store-sync/... へのアクセスが 200 OK になっているか確認。