用途
该技能面向 AutoGPT 前端仓库(autogpt_platform/frontend),用于根据当前分支相对 dev 分支的前端代码变更,规划并编写集成测试。适用于用户要求为改动的前端页面或组件编写测试的场景。
主要能力
技能的工作流程分为若干步骤:
-
识别变更的前端文件:以
BASE_BRANCH(默认 dev)为基准,通过git diff "$BASE_BRANCH"...HEAD --name-only -- src/列出改动文件,并过滤掉 generated、tests、.test.、.stories.、.spec. 等。同时读取 diff 内容以理解改动。 -
归类变更并确定测试目标:区分页面(page.tsx)、Hook(use*.ts)、组件(components/ 下的 .tsx)与工具函数(helpers.ts、utils.ts)。优先级依次为:有新/变更数据获取或交互的页面、内部逻辑复杂的组件(模态框、表单、向导)、具有独立业务逻辑的共享 Hook、纯工具函数。仅样式、类型或配置的变更会跳过。
-
检查已有测试:在对应
__tests__/目录下查看是否已有测试,区分需新建还是需更新。 -
识别所用的 API 端点:通过 grep 查找生成式 API Hook 的导入(如
__generated__/endpoints、use[A-Z].*V[12]),并定位对应的 MSW 处理器(如getGetV2ListLibraryAgents.*Handler),列出所需的 200 与 4xx 处理器。 -
编写测试计划:在写代码前输出编号列表计划,标明每个文件(NEW 或 UPDATE)及其用例,并提交给用户确认,等待反馈后再继续。
-
编写测试:遵循项目约定,包括从
@/tests/integrations/test-utils导入 render、在渲染前用server.use()设置 MSW、对数据获取后出现的元素使用findBy*、只对立即存在的元素用getBy*、用screen查询而非解构 render、交互后用waitFor、从 test-utils 导入 fireEvent/userEvent、不在 API 边界以外 mock、优先使用 Orval 生成的 MSW 处理器、不手动使用 act()、每个测试聚焦一个行为、使用描述性测试名。自定义 MSW 覆盖时使用代理 URL 模式http://localhost:3000/api/proxy/api/v{version}/{path}。 -
运行并验证:执行
pnpm test:unit --reporter=verbose,失败时修复测试(除非确有源码缺陷),随后运行pnpm format、pnpm lint、pnpm types。
使用方式
技能作为自动化步骤执行,触发命令位于 autogpt_platform/frontend 目录下,接受可选参数作为基准分支。执行过程中会先输出测试计划并暂停等待用户确认。
参考文件
- autogpt_platform/frontend/TESTING.md
- autogpt_platform/frontend/src/tests/AGENTS.md
- autogpt_platform/frontend/src/tests/integrations/test-utils.tsx
- autogpt_platform/frontend/src/tests/integrations/vitest.setup.tsx
适用场景与限制
适用于 AutoGPT 前端仓库内有实际代码变更、需要补充集成测试的场景。若仅有样式、类型或配置变更则跳过。测试目标的选取与优先级、MSW 处理器的使用方式均遵循上述规则。价格、平台支持范围、其他效果说明资料未提供。