総合検証チェックリスト (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)」を購入(注文完了)する。
- 期待動作:
- Mainサイトの該当ユーザーのメタデータ
storesync_license_cross-poster-proが作成される。 - ステータスが
activeになっている。 - Mainサイトのフォーラム投稿欄に
[Cross Poster Pro]と[優先サポート]バッジが表示される。
- Mainサイトの該当ユーザーのメタデータ
ケース 1-B: サブスクリプション途中キャンセル (Pending Cancel)
- 操作: Storeサイトのマイページで、サブスクリプションを「キャンセル」する。
- 期待動作:
- Mainサイトへ通知が飛ぶ。
- ステータスは
activeのまま維持される(有効期限までは使えるため)。 - バッジは 消えない(表示され続ける)。
ケース 1-C: 有効期限切れ (Expired)
- 操作:
- Store管理画面から、サブスクリプションのステータスを「期限切れ (Expired)」に手動変更する。
- または、MainサイトのDBを直接操作して
expires_atを過去の日付に変更する。
- 期待動作:
- バッジが 消える。
ケース 1-D: ユーザー設定 (Toggle)
- 操作: Mainサイトのプロフィール設定で「Show Badges」のチェックを外して保存する。
- 期待動作:
- ライセンスが有効であっても、バッジが 表示されない。
2. Client -> Store 連携 (ライセンス認証・更新)
ケース 2-A: ライセンス有効化 (Activation)
- 操作: Clientサイト (
Cross Poster Pro設定画面) で、Storeから発行されたライセンスキーを入力し保存・有効化する。 - 期待動作:
- 「有効化されました」というメッセージが表示される。
- Storeサイトの管理画面 (
License Manager) で、そのキーの使用回数 (Activation count) が増えている。 - プラグインのPro機能がアンロックされる。
ケース 2-B: 自動アップデート (Update Check)
- 準備: Store側のプラグインバージョンを、Client側より新しいもの(例: 9.9.9)にし、Zipを配置する。
- 操作: Clientサイトの「ダッシュボード > 更新」を確認する。
- 期待動作:
- 「Cross Poster Pro」の更新通知が表示される。
- 「更新」ボタンを押すと、エラーなくアップデートが完了する。
ケース 2-C: 無効なキーでの挙動
- 操作: デタラメなキーを入力する、またはStore側でキーを「無効 (Inactive)」にする。
- 期待動作:
- Client側でエラーメッセージが表示される。
- Pro機能がロックされる(または警告が出る)。
3. アンインストール (Cleanup)
ケース 3-A: プラグイン削除
- 操作: ClientサイトおよびMainサイトで、各プラグインを「削除」する。
- 期待動作:
wp_optionsやwp_usermetaから、プラグイン固有のデータ (crp_pro_settings,storesync_license_*等) がきれいに消えていること。
デバッグ時のヒント (Logs)
問題が発生した場合は、以下のログを確認してください。
- Storeサイト:
/wp-content/debug.log- キーワード:
SLM Sync Error,License Manager
- キーワード:
- Webサーバーのアクセスログ
- StoreからMainへの
POST /wp-json/store-sync/...へのアクセスが200 OKになっているか確認。
- StoreからMainへの