競合状態テスト

残り2冊の状態で、3人が同時に予約を試みた場合の動作を確認します。

現在の在庫状態

読み込み中...

テストシナリオ

状況設定

残り2冊の商品券、3人のユーザーが同時に予約画面を進行

期待される動作

  • User A (2冊予約): ✅ 成功 - 予約IDが発行される
  • User B (1冊予約): ❌ 失敗 - 「予約上限に達しました」エラー
  • User C (1冊予約): ❌ 失敗 - 「予約上限に達しました」エラー

確認項目

  • 在庫が1000冊を超えないこと
  • 失敗したユーザーに適切なエラーメッセージが表示されること
  • 最終的に予約受付が停止されること (isAccepting: false)
  • データ整合性が保たれること

実装されている排他制御

  • 第1段階: 初期在庫チェック(BATCHクエリ)
  • 第2段階: 最終防衛ライン(挿入直前の再チェック)
  • 重複防止: 電話番号での重複チェック
  • リアルタイム計算: SUM(quantity)で正確な在庫管理