testing-clickup-cli
정보
이 스킬은 clickup-cli 프로젝트의 테스트 관리를 담당하며, 모의 의존성을 사용한 단위 테스트와 실제 ClickUp 워크스페이스를 대상으로 한 종단 간 테스트를 모두 처리합니다. 테스트 스위트 실행, 실패 디버깅, 테스트 픽스처 또는 데이터 설정에 사용됩니다. 개발자는 테스트 커버리지 작업, CLI 동작 검증, 또는 테스트 환경을 준비할 때 이 스킬을 사용해야 합니다.
빠른 설치
Claude Code
추천npx skills add krodak/clickup-cli -a claude-code/plugin add https://github.com/krodak/clickup-cligit clone https://github.com/krodak/clickup-cli.git ~/.claude/skills/testing-clickup-cliClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
Test Suite Overview
| Suite | Command | Files | What it tests |
|---|---|---|---|
| Unit | npm test | tests/unit/**/*.test.ts | All commands, API client, formatters, config. Mocks ClickUpClient. |
| E2E | npm run test:e2e | tests/e2e/**/*.e2e.ts | Real API calls against a live ClickUp workspace. |
Unit tests run in CI. E2E tests require CLICKUP_API_TOKEN in .env.test and are not part of CI.
Running Tests
npm test # all unit tests
npm test -- tests/unit/commands/ # just command tests
npm test -- -t "sprint" # filter by test name
npm run test:e2e # e2e tests (needs .env.test)
The unit test global setup runs npm run build before tests start.
E2E Test Workspace
Tests run against the personal ClickUp workspace (profile: personal).
Space: E2E Tests (90166622768)
Pre-populated with test fixtures:
| Fixture | What it contains |
|---|---|
| Sprints folder | 3 sprint lists with (M/DD - M/DD) date ranges. Sprint 2 is "current". |
| Backlog list | General tasks for CRUD testing. E2E lifecycle tests create/delete tasks here. |
| Tasks | 11 tasks with varied statuses, priorities, assignees, due dates, tags. |
| Subtasks | 3 subtasks under "Implement user authentication". |
| Checklist | "CI Steps" with 5 items (3 resolved). |
| Tags | backend, frontend, security, design, bug. |
| Comments | 2 comments on the auth task. |
| Dependencies | "Design landing page" depends on "Set up CI pipeline". |
| Overdue task | "Fix login redirect bug" in Sprint 1 with past due date. |
Space: ClickUp CLI (90166622769)
Project tracking space. Not used for tests - used for tracking releases and features.
E2E Test Patterns
Lifecycle tests (tests/e2e/lifecycle.e2e.ts)
These create test data, verify operations, and clean up:
| Suite | Tests | Coverage |
|---|---|---|
| Task lifecycle | 13 | Create, read, update, subtask, comment, checklist, delete, confirm gone |
| Tag lifecycle | 4 | Add tag, verify, remove, verify removed |
| Time tracking | 5 | Start timer, check running, stop, log entry, list entries |
Each suite uses beforeAll to find the Backlog list and afterAll to clean up created tasks.
API tests (tests/e2e/api.e2e.ts)
Tests API client methods directly: getSpaces, getLists, getTask, sprint detection.
Unit Test Patterns
Mocking ClickUpClient
Every command test mocks the API client with vi.mock:
const mockGetTask = vi.fn().mockResolvedValue({ id: 't1', name: 'Task' })
vi.mock('../../../src/api.js', () => ({
ClickUpClient: vi.fn().mockImplementation(function () {
return { getTask: mockGetTask }
}),
}))
The function keyword (not arrow) is required for Vitest 4's new semantics.
Testing command functions
Commands export pure functions. Tests import and call them directly:
const { updateTask } = await import('../../../src/commands/update.js')
await updateTask({ apiToken: 'pk_t', teamId: 'team1' }, 't1', { status: 'done' })
expect(mockUpdateTask).toHaveBeenCalledWith('t1', { status: 'done' })
Metadata sync test
tests/unit/commands/completion.test.ts verifies that:
- Every command registered in Commander is listed in
src/commands/metadata.ts - The
docs/commands.mdquick reference section matches what metadata generates
If you add a new command, you MUST add it to metadata.ts. If you add new flags, add them too. Then run node --import tsx scripts/sync-command-docs.ts to regenerate the docs.
Adding New Tests
New unit test
- Create
tests/unit/commands/<name>.test.ts - Mock
ClickUpClientwith the methods your command uses - Test happy path, error cases, edge cases
- Run
npm test -- tests/unit/commands/<name>.test.ts
New e2e test
- Add to
tests/e2e/lifecycle.e2e.tsor create a new*.e2e.tsfile - Use the Backlog list in E2E Tests space for creating test data
- Always clean up: delete created tasks/checklists in
afterAll - Use
describe.skipIf(!TOKEN)to skip when no API token is set - Run
npm run test:e2e
Config for E2E
# .env.test (gitignored)
CLICKUP_API_TOKEN=pk_... # personal workspace token
Copy from .env.test.example and fill in your token.
GitHub 저장소
연관 스킬
evaluating-llms-harness
테스팅이 Claude Skill은 MMLU, GSM8K를 포함한 60개 이상의 표준화된 학술 과제에서 LLM 성능을 벤치마크하기 위해 lm-evaluation-harness를 실행합니다. 개발자들이 모델 품질을 비교하고, 학습 진행 상황을 추적하거나 학술 결과를 보고할 수 있도록 설계되었습니다. 이 도구는 HuggingFace와 vLLM 모델을 포함한 다양한 백엔드를 지원합니다.
cloudflare-cron-triggers
테스팅이 스킬은 cron 표현식을 사용하여 Worker를 스케줄링하기 위한 Cloudflare Cron Triggers 구현에 관한 포괄적인 지식을 제공합니다. 주기적 작업, 유지보수 작업, 자동화된 워크플로우 설정 방법을 다루며, 잘못된 cron 표현식이나 시간대 문제 같은 일반적인 이슈들을 해결하는 방법을 포함합니다. 개발자들은 이를 통해 스케줄된 핸들러 구성, cron 트리거 테스트, Workflows 및 Green Compute와의 연동 작업을 수행할 수 있습니다.
webapp-testing
테스팅이 Claude Skill은 Python 스크립트를 통해 로컬 웹 애플리케이션을 테스트하기 위한 Playwright 기반 툴킷을 제공합니다. 프론트엔드 검증, UI 디버깅, 스크린샷 캡처, 로그 확인 기능을 지원하며 서버 라이프사이클을 관리합니다. 브라우저 자동화 작업에 사용하되 컨텍스트 오염을 방지하기 위해 소스 코드를 읽지 않고 스크립트를 직접 실행하세요.
finishing-a-development-branch
테스팅이 스킬은 테스트 통과를 확인한 후 체계적인 통합 옵션을 제시하여 개발자가 완성된 작업을 마무리하도록 돕습니다. 구현이 완료된 후 머지, PR 생성, 브랜치 정리와 같은 워크플로우를 안내합니다. 코드가 준비되고 테스트가 완료되었을 때 개발 프로세스를 체계적으로 마무리하기 위해 사용하세요.
