SuperAPI AI 工具集

verify-clerk-expo

测试与质量

查看项目

更新于 10-24 07:07

技能介绍

verify-clerk-expo 是用于验证 @clerk/expo 与 @clerk/expo-native-components 在 expo-native 测试应用中行为的集成测试工具。其控制入口为 integration/expo-native/bin/control-clerk-expo,一个基于 e2e 0.18.0 与 @e2e-dev/mobile 0.10.0 的命令行工具。

用途:在修改 @clerk/expo 或 @clerk/expo-native-components 的 UI 或认证行为后,需在改动涉及的每个平台的模拟器或仿真器上展示变化后的行为;本工具提供在测试应用上运行的一种方式,也可用自行应用验证。

主要能力:构建 integration/templates/expo-native 测试应用;租用模拟器/仿真器;为工作树创建一个 Clerk 应用并注入 +clerk_test 用户;运行 specs;保留证据。本地 Mac 使用本地设备、Debug 开发客户端和 Metro;无法运行设备的机器则在 GitHub Actions runner 上租用设备,由 runner 构建推送的提交为 Release 应用并内嵌 JS。

使用方式:所有命令在仓库根目录运行。动词包括 doctor、up、run、screen、attach、down,除 attach 外均接受 --platform ios|android(默认 iOS),均支持 --json。每台机器需一次性配置:Node 24(24.15.0+)、iOS 需 Xcode 与模拟器运行时、Android 需 Android Studio/SDK/仿真器/Java 21;创建 iOS 模板模拟器;提供 Clerk Platform API key(环境变量、文件或 1Password 引用);安装 ffmpeg。每个工作树执行 pnpm install、npm ci --prefix integration/expo-native、doctor、up。run 用于运行指定 feature、单个 spec 或自写 spec,支持 --all、--grep、--retries、--max-failures、--no-video、--wait 等参数。测试输入仅通过 specs(TypeScript 文件,使用 host fixture 与 screen locators)。

适用场景:Clerk 内部对 Expo 相关包进行变更验证;在本地或远程设备上运行原生认证视图、用户按钮、用户资料视图及自定义登录注册流程的端到端测试。

限制:测试应用不安装 @clerk/expo-passkeys,无法验证 passkeys;非 Mac 或无硬件虚拟化的机器需使用远程后端;工作树每种平台仅一个 lane,同一应用一次只服务一个 run;远程会话无 Metro 与 watch build,编辑后需提交并推送;各类错误有对应错误码(如 NOT_READY、DEVICE_BUSY、POOL_FULL)。