/**
 * E2E 测试超时配置常量
 *
 * 统一管理所有测试相关的超时时间，避免硬编码魔法数字
 * 提高代码可维护性和一致性
 */

export const TIMEOUTS = {
  // ===== 极短等待 (ms) =====
  /** 200ms - 极短等待，用于 UI 状态过渡 */
  VERY_SHORT: 200,

  // ===== 短等待 (ms) =====
  /** 300ms - 短等待，用于快速 UI 响应 */
  SHORT: 300,

  // ===== 中等等待 (ms) =====
  /** 500ms - 中等等待，用于常规 UI 交互 */
  MEDIUM: 500,

  /** 800ms - 中长等待，用于较慢的 UI 响应 */
  MEDIUM_LONG: 800,

  // ===== 长等待 (ms) =====
  /** 1000ms - 长等待，用于页面稳定 */
  LONG: 1000,

  /** 1500ms - 更长的等待，用于复杂操作 */
  LONGER: 1500,

  /** 2000ms - 很长等待，用于异步操作完成 */
  VERY_LONG: 2000,

  /** 3000ms - 超长等待，用于文件上传等耗时操作 */
  EXTENDED: 3000,

  // ===== 对话框和元素可见性 (ms) =====
  /** 3000ms - 元素出现等待（短） */
  ELEMENT_VISIBLE_SHORT: 3000,

  /** 5000ms - 对话框、元素可见性等待 */
  DIALOG: 5000,

  /** 6000ms - Toast 消息长时间等待 */
  TOAST_LONG: 6000,

  // ===== 表格和数据加载 (ms) =====
  /** 10000ms - 表格数据加载、网络请求等待 */
  TABLE_LOAD: 10000,

  /** 10000ms - 操作等待（如删除后刷新） */
  OPERATION: 10000,

  // ===== 页面加载 (ms) =====
  /** 15000ms - 页面加载等待 */
  PAGE_LOAD: 15000,

  /** 20000ms - 长页面加载等待 */
  PAGE_LOAD_LONG: 20000,

  // ===== 文件上传 (ms) =====
  /** 5000ms - 文件上传等待 */
  UPLOAD: 5000,

  /** 30000ms - 长时间上传等待 */
  UPLOAD_LONG: 30000,

  // ===== 测试超时 (ms) =====
  /** 120000ms - 单个测试的默认超时时间 (2分钟) */
  TEST_TIMEOUT: 120000,
} as const;

/**
 * 超时常量类型，用于类型推断
 */
export type Timeouts = typeof TIMEOUTS;
