用途:为 clickup-cli 运行和管理测试,覆盖单元测试、针对真实 ClickUp 工作区的端到端(E2E)测试,以及测试数据准备。
主要能力与命令:单元测试用 npm test,文件位于 tests/unit//*.test.ts,覆盖所有命令、API 客户端、格式化器和配置,通过 mock ClickUpClient 实现,并在 CI 中运行;E2E 测试用 npm run test:e2e,文件位于 tests/e2e//*.e2e.ts,对真实 ClickUp 工作区发起 API 调用,需要 .env.test 中的 CLICKUP_API_TOKEN,不纳入 CI。可按目录或名称过滤,如 npm test -- tests/unit/commands/ 或 npm test -- -t "sprint"。单元测试全局 setup 会在测试前执行 npm run build。
E2E 工作区:测试针对个人 ClickUp 工作区(profile: personal)。Space「E2E Tests」(90166622768) 预置夹具,包括 Sprints 文件夹(3 个 sprint 列表,Sprint 2 为 current)、Backlog 列表、11 个任务、3 个子任务、含 5 项(3 项已完成)的 CI Steps 清单、标签、评论、依赖和逾期任务;Space「ClickUp CLI」(90166622769) 仅用于跟踪发布与功能,不用于测试。
测试模式:生命周期测试(tests/e2e/lifecycle.e2e.ts)创建数据、验证操作并清理,含任务生命周期 13 项、标签生命周期 4 项、时间跟踪 5 项,使用 beforeAll 查找 Backlog 列表、afterAll 清理。API 测试(tests/e2e/api.e2e.ts)直接测试 API 客户端方法。单元测试通过 vi.mock 模拟 ClickUpClient,命令导出纯函数供直接调用;Vitest 4 要求使用 function 关键字而非箭头函数。completion.test.ts 校验 Commander 注册的命令与 metadata.ts 及 docs/commands.md 一致,新增命令或标志须同步 metadata.ts 并运行 node --import tsx scripts/sync-command-docs.ts 重新生成文档。
新增测试:单元测试放在 tests/unit/commands/<name>.test.ts,模拟所用方法并覆盖正常、错误和边界情况;E2E 测试加入 lifecycle.e2e.ts 或新建 *.e2e.ts,使用 Backlog 列表创建数据并在 afterAll 清理,用 describe.skipIf(!TOKEN) 在无令牌时跳过。E2E 配置从 .env.test.example 复制为 .env.test(已 gitignore)并填入个人工作区令牌。
限制:E2E 依赖真实工作区与令牌,未提供令牌时跳过;资料未说明其他平台或收费信息。