SuperAPI AI 工具集

slack-msw-tests

测试与质量

查看项目

更新于 10-15 21:51

技能介绍

用途:仅在测试验证出站 Slack HTTP 行为时使用,包括 src/chat/slack-actions/* 的 Slack Web API 调用、Slack 文件上传流程(files.getUploadURLExternal、files.slack.com/upload/*、files.completeUploadExternal)以及 src/chat/slack-user.ts 的用户查询。若为纯业务逻辑、无 Slack HTTP 契约断言,应改用普通单元测试。

主要能力:按需加载参考文档(test-authoring-playbook.md、endpoint-fixture-matrix.md、anti-patterns-and-fixes.md);使用项目 harness 编写测试。

使用方式:测试放在 tests/ 下并以 *.test.ts 命名;导入真实被测模块,不 mock Slack SDK;用 tests/msw/handlers/slack-api.ts 的 helper 排队 Slack 响应;用 tests/fixtures/slack/factories/api.ts 的 fixture builder;执行真实函数;同时断言返回结果与捕获的出站 Slack 请求负载。涉及 status/title/progress 时需覆盖 assistant-thread 矩阵:非 DM 入站消息带显式 thread_ts 时使用该实时线程上下文;省略 thread_ts 时首次线程回复使用实时消息 ts;DM 省略 thread_ts 时跳过 status/title 调用。不要在测试文件内创建本地 MSW 服务器,全局生命周期已由 tests/msw/setup.ts 配置。

验证:运行 pnpm test -- <target-test-files> 与 pnpm typecheck,并用 rg 检查禁用模式。

限制:禁止 vi.mock("@slack/web-api")、vi.mock("@/chat/slack-actions/client"),禁止 stub 全局 fetch,优先 fixture builder,保持 ID 与时间戳确定性。