SuperAPI AI 工具集

vercel-labs-emulate

测试与质量

查看项目

更新于 10-13 22:10

技能介绍

emulate 是 Vercel Labs 生态中面向本地开发与测试的 API 模拟工具,用于在 CI 流水线和无网络沙箱中替代 Vercel、GitHub 和 Google 的线上 API。它强调“生产级保真度”:不是返回固定响应的 mock,而是带有真实内存状态的本地 HTTP 服务器,支持分页、OAuth、Webhook 和级联删除等行为。

用途方面,它主要解决依赖外部 SaaS API 的测试痛点,让测试无需出网、无需真实凭据,也无需在 CI 中配置额外服务。它既可以整体启动全部服务,也可以只启动指定服务,并允许自定义基础端口(各服务端口自动递增)。

主要能力包括:命令行启动(npx emulate,无需安装),或作为开发依赖安装(npm install --save-dev emulate);支持 --service 指定服务、--port 指定基础端口、--seed 加载 YAML 种子数据、init 生成配置、list 列出可用服务。默认端口为 Vercel 4000、GitHub 4001、Google 4002,也可通过 EMULATE_PORT 或 PORT 环境变量设置。编程 API 提供 createEmulator,返回带 url、reset() 和 close() 的实例;reset() 会清空内存存储并重放种子数据。

使用方式上,它可与 Vitest/Jest 的 setup 文件集成,在 beforeAll 启动模拟器、afterEach 调用 reset()、afterAll 关闭服务,并把应用环境变量指向本地地址。种子配置可通过项目根目录的 emulate.config.yaml 自动检测,也支持在代码中传入相同结构的种子对象。OAuth 方面,可配置 GitHub OAuth Apps、GitHub Apps(JWT 认证,要求 RS256 签名并校验使用配置中的私钥)以及 Vercel Integrations;未配置 oauth_apps 时接受任意 client_id,配置后则启用严格校验。文档还给出了测试 GitHub API 客户端(配合 Octokit)、测试 Vercel 部署工作流、以及同时运行多服务的示例,并提供 GitHub Actions 与 Docker/无网络沙箱配置示例。

适用场景主要是需要隔离外部依赖的集成测试、CI 流水线、离线沙箱环境,以及需要可重置、可播种数据的测试套件。限制方面,资料仅说明其覆盖 Vercel、GitHub、Google 三类服务及其文档列出的端点;其他服务、具体定价、收费模式、性能指标等暂未提供。