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-cliСкопируйте и вставьте эту команду в Claude 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 репозиторий
Frequently asked questions
What is the testing-clickup-cli skill?
testing-clickup-cli is a Claude Skill by krodak. Skills package instructions and resources that Claude loads on demand, so Claude can perform testing-clickup-cli-related tasks without extra prompting.
How do I install testing-clickup-cli?
Use the install commands on this page: add testing-clickup-cli to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does testing-clickup-cli belong to?
testing-clickup-cli is in the Testing category, tagged ai, testing and data.
Is testing-clickup-cli free to use?
Yes. testing-clickup-cli is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Похожие навыки
Этот навык Claude запускает lm-evaluation-harness для тестирования LLM на более чем 60 стандартизированных академических задачах, таких как MMLU и GSM8K. Он предназначен для разработчиков, чтобы сравнивать качество моделей, отслеживать прогресс обучения или сообщать академические результаты. Инструмент поддерживает различные бэкенды, включая модели HuggingFace и vLLM.
Этот навык предоставляет обширные знания по реализации Cloudflare Cron Triggers для планирования запуска Workers с помощью cron-выражений. Он охватывает настройку периодических задач, заданий технического обслуживания и автоматизированных рабочих процессов, а также решение распространенных проблем, таких как неверные cron-выражения и ошибки часовых поясов. Разработчики могут использовать его для настройки планировщиков обработчиков, тестирования cron-триггеров и интеграции с Workflows и Green Compute.
Этот навык Claude предоставляет инструментарий на базе Playwright для тестирования локальных веб-приложений с помощью Python-скриптов. Он позволяет проводить проверку фронтенда, отладку интерфейса, создание скриншотов и просмотр логов, одновременно управляя жизненным циклом сервера. Используйте его для задач автоматизации браузера, но запускайте скрипты напрямую, вместо чтения их исходного кода, чтобы избежать загрязнения контекста.
Этот навык помогает разработчикам завершать готовую работу, проверяя прохождение тестов и предлагая структурированные варианты интеграции. Он направляет рабочий процесс по слиянию, созданию пул-реквестов или очистке веток после завершения реализации. Используйте его, когда ваш код готов и протестирован, чтобы систематически завершать процесс разработки.
