用途:为 HubSpot 集成建立快速本地开发工作流,涵盖沙箱账号、API mocking 与测试工具。
前置条件:已完成 hubspot-install-auth 设置;Node.js 18+ 与 npm/pnpm;在 developers.hubspot.com 申请免费的 HubSpot 开发者测试账号。
主要能力:
- 项目结构:src/hubspot/ 下放置 client.ts(@hubspot/api-client 单例封装)、contacts.ts、deals.ts、types.ts;tests/mocks/ 放置共享 mock 工厂;.env.local 保存本地密钥(忽略提交)、.env.example 作模板。
- 客户端单例:getHubSpotClient() 读取 HUBSPOT_ACCESS_TOKEN,缺失时报错;numberOfApiCallRetries 设为 3;resetHubSpotClient() 供测试重置。
- 使用 Vitest:脚本含 dev(tsx watch src/index.ts)、test、test:watch、test:integration;devDependencies 含 @hubspot/api-client ^13.0.0、vitest ^2.0.0、tsx ^4.0.0。
- Mock 工厂:createMockHubSpotClient() 用 vi.fn() 模拟 contacts(basicApi/searchApi/batchApi)、deals、companies 的返回值,单元测试不发起真实请求。
- 集成测试:用 HUBSPOT_TEST=true 控制运行,通过 describe.skipIf 跳过;创建后 archive 清理。
使用方式:在 .env.local 写入测试账号令牌与门户 ID,如 HUBSPOT_ACCESS_TOKEN=pat-na1-test-xxxx、HUBSPOT_PORTAL_ID=12345678。
限制与错误处理:缺少令牌需复制 .env.example;SDK 版本变化需同步 mock 类型;测试超时多因真实调用泄漏;测试账号遇 429 需增加调用间隔。
后续可参考 hubspot-sdk-patterns 获取生产级代码模式。官方文档未提供定价信息。