| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /**
- * 默认超时配置(毫秒)
- *
- * @description
- * 定义各种操作的默认超时时间。所有工具函数都应该使用这些常量而不是硬编码超时值。
- *
- * @example
- * ```ts
- * const timeout = options.timeout ?? DEFAULT_TIMEOUTS.static;
- * ```
- */
- export const DEFAULT_TIMEOUTS = {
- /** 静态选项超时(5秒)- 增加以适应不同环境*/
- static: 5000,
- /** 异步选项超时(10秒)- 增加以适应网络慢的环境*/
- async: 10000,
- /** 网络空闲超时(15秒)- 增加以适应网络慢的环境*/
- networkIdle: 15000
- } as const;
- /**
- * 选择器策略常量
- *
- * @description
- * 定义选择器查找的优先级顺序,用于应对 Radix UI 版本升级。
- *
- * 优先级顺序:
- * 1. `data-testid` - 最稳定,推荐用于测试
- * 2. `aria-label + role` - 无障碍属性,较为稳定
- * 3. `text content + role` - 文本内容,最不稳定但最通用
- *
- * @example
- * ```ts
- * // 按优先级尝试选择器
- * for (const strategy of SELECTOR_STRATEGIES) {
- * const element = await findByStrategy(strategy, label);
- * if (element) return element;
- * }
- * ```
- */
- export const SELECTOR_STRATEGIES = [
- 'data-testid',
- 'aria-label + role',
- 'text content + role'
- ] as const;
- /**
- * 选择器策略类型
- *
- * @description
- * 选择器策略的联合类型,用于类型检查。
- *
- * @example
- * ```ts
- * function findByStrategy(strategy: SelectorStrategy, label: string) {
- * // ...
- * }
- * ```
- */
- export type SelectorStrategy = typeof SELECTOR_STRATEGIES[number];
|