========================================================================
テスト操作手順 (Test Operation Guide)
========================================================================


1. 概要 (Overview)
------------------------------------------------------------------------
本ドキュメントは，プロジェクト内のテスト関連ファイルの実行方法を整理し，チーム内で共通の運用手順を共有することを目的とする．


1-1. 対象範囲

■ 対象ファイル
・テスト実行用スクリプト: /workspace/test/load-bot.mjs
・テスト用依存定義: /workspace/test/package.json

■ 対象外
・アプリ本体のビルドと起動手順
・本番運用の監視設定


2. 前提条件 (Prerequisites)
------------------------------------------------------------------------

2-1. 環境
・Node.js / pnpm が利用可能であること
・インターネット接続が利用可能であること

2-2. 設定値
■ 接続先URL
・既定値: https://skillsemiwebgame.onrender.com
・変更方法: コマンドライン引数(--dev)または定数を編集する


3. 実行手順 (Execution Steps)
------------------------------------------------------------------------

3-1. 初回準備
1. テスト用ディレクトリへ移動
    - コマンド: $ cd /workspace/test
2. 依存関係のインストール
    - コマンド: $ pnpm install

3-2. 実行
    - コマンド: $ pnpm start
    - 開発環境に接続する場合: $ pnpm start -- --dev


4. パラメータ一覧 (Parameters)
------------------------------------------------------------------------
4-1. コマンドライン引数
    ・--dev: 開発環境(DEV_SERVER_URL)に接続する

4-2. 定数 (load-bot.constants.ts)
    ・URL: 本番サーバURL
    ・DEV_URL: 開発サーバURL
    ・BOTS: 同時接続数
    ・DURATION_MS: 実行時間 (ms)。0以下またはInfinityで無期限
    ・JOIN_DELAY_MS: 参加間隔 (ms)
    ・MOVE_TICK_MS: 移動送信間隔 (ms)
    ・BOT_SPEED: 移動速度
    ・BOT_RADIUS: プレイヤー半径
    ・BOT_CAN_MOVE: ボット移動の有効化 (true/false)
    ・START_DELAY_MS: 開始遅延 (ms)
    ・MAX_X: X座標上限
    ・MAX_Y: Y座標上限
    ・ROOM_ID: ルームID
    ・START_GAME: ゲーム開始の有効化 (true/false)
    ・SOCKET_PATH: Socket.IOのパス
    ・SOCKET_TRANSPORTS: Socket.IOのトランスポート


5. 出力と終了 (Output & Termination)
------------------------------------------------------------------------

5-1. 標準出力
    ・開始時に設定値が出力される
    ・終了時に簡易統計 (接続数など) が出力される

5-2. 終了方法
    ・指定時間経過後に自動終了する
    ・途中終了する場合はプロセスを終了する


6. 注意事項 (Notes)
------------------------------------------------------------------------

6-1. 本番サーバへの負荷
    ・負荷テストは低負荷から段階的に実施すること
    ・必要に応じて管理者へ事前連絡を行うこと

6-2. 依存関係
    ・test配下は独立した依存関係を持つため，別途pnpm installが必要になる

6-3. 計測の限界
    ・本スクリプトは簡易負荷確認用であり，詳細な計測は専用ツールの利用を推奨する
