/**
 * 健康檢查夜間監控
 * 
 * 此測試用於 Production 環境，持續監控系統健康狀態。
 * 測試重點：系統可用性監控，識別性能退化。
 */

import { healthCheck } from '../../scenarios/apis/health.js';

export const options = {
  scenarios: {
    nightly_health: {
      executor: 'constant-arrival-rate',
      rate: 1, // 每秒 1 個請求
      timeUnit: '1s',
      duration: '10m', // 執行 10 分鐘
      preAllocatedVUs: 2,
      maxVUs: 5,
      tags: { test_type: 'nightly', api: 'health', environment: 'prod' },
    },
  },
  thresholds: {
    checks: ['rate==1.0'], // 所有檢查必須通過
    http_req_duration: ['p(95)<500'], // 95% 的請求應在 500ms 內完成
    health_check_success: ['rate==1.0'], // 健康檢查成功率應為 100%
    http_req_failed: ['rate==0'], // 不允許失敗
  },
};

export default function () {
  const baseUrl = __ENV.BASE_URL || 'http://localhost:8888';

  const result = healthCheck({ baseUrl });

  if (!result.success) {
    console.error(`Health check failed: Status ${result.status}, Response time ${result.responseTime}ms`);
    return;
  }

  // 記錄健康檢查結果（在實際環境中，這可以發送到監控系統）
  console.log(`Health check passed: Status ${result.status}, Response time ${result.responseTime}ms`);
}

