競合状態テスト
残り2冊の状態で、3人が同時に予約を試みた場合の動作を確認します。
現在の在庫状態
読み込み中...
3人同時予約テストを実行
在庫を998冊にリセット
テスト結果
User A (2冊)
実行中...
User B (1冊)
実行中...
User C (1冊)
実行中...
最終在庫状態
確認中...
テストシナリオ
状況設定
残り2冊の商品券、3人のユーザーが同時に予約画面を進行
期待される動作
User A (2冊予約): ✅ 成功 - 予約IDが発行される
User B (1冊予約): ❌ 失敗 - 「予約上限に達しました」エラー
User C (1冊予約): ❌ 失敗 - 「予約上限に達しました」エラー
確認項目
在庫が1000冊を超えないこと
失敗したユーザーに適切なエラーメッセージが表示されること
最終的に予約受付が停止されること (isAccepting: false)
データ整合性が保たれること
実装されている排他制御
第1段階
: 初期在庫チェック(BATCHクエリ)
第2段階
: 最終防衛ライン(挿入直前の再チェック)
重複防止
: 電話番号での重複チェック
リアルタイム計算
: SUM(quantity)で正確な在庫管理