コンテンツにスキップ

ランダム短歌 — テストのやり方

非同期モードなど 時間がかかる機能 を、毎回7日待たずに検証するための手順。


非同期モード E2E

1. 開発サーバーをテスト用設定で起動

cd tanka-party
DEV_TOOLS=1 ASYNC_DEADLINE_MINUTES=1 npm run dev
変数 意味
ASYNC_DEADLINE_MINUTES=1 締切を 1分後 に短縮(本番は7日)
DEV_TOOLS=1 POST /api/rooms/:code/dev/force-async-deadline を有効化(任意)

2. 別ターミナルでスモークテスト

cd tanka-party
npm run test:async

確認項目: 退室、早期合成、メール登録、合成成功。


メール通知(本番)

Vercel 環境変数(webapp と同じ SMTP で可):

変数
SMTP_HOST smtp.example.com
SMTP_PORT 587
SMTP_SECURE false
SMTP_USER / SMTP_PASS (必要なら)
MAIL_FROM noreply@example.com
APP_BASE_URL https://random-tanka.vercel.app

未設定のときはメール送信だけスキップ(アプリは動く)。


手動 UI 確認(短い締切)

  1. 上記と同じ env で npm run dev
  2. ブラウザでルーム作成 → 非同期パーティ
  3. 2人目を別タブ / シークレットで参加
  4. 各自カード保存 → バナーに「入力済み 2/2」
  5. 開発者ツールまたは curl で force:
curl -X POST http://localhost:8080/api/rooms/XXXX/dev/force-async-deadline
  1. ページを更新 → 「合成する」が有効になる

曲水の宴(参考)

宴モードは秒単位の writing_duration_sec で調整可能。非同期ほど専用 env はないが、60秒に設定すれば手動テストは容易。


CI への載せ方(将来)

  • test:asyncローカル / エージェント 向け(dev サーバー前提)
  • CI では npm run dev をバックグラウンド起動 → sleep 3npm run test:async の job を追加可能
  • 本番 Vercel では DEV_TOOLS設定しない(force API は 404)

関連