Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/krodak-testing-clickup-cli
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/testing-clickup-cli
What's inside
- Skill name
testing-clickup-cli- Description
- Run and manage tests for clickup-cli. Covers unit tests, e2e tests against a real ClickUp workspace, and the test data setup. Use when running tests, adding test coverage, debugging test failures, or setting up test fixtures.
- License
- MIT
- Metadata
- internal: true
- Instructions
- 126 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## 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
```bash
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`:
```typescript
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:
```typescript
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:
1. Every command registered in Commander is listed in `src/commands/metadata.ts`
2. The `docs/commands.md` quick 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
1. Create `tests/unit/commands/<name>.test.ts`
2. Mock `ClickUpClient` with the methods your command uses
3. Test happy path, error cases, edge cases
4. Run `npm test -- tests/unit/commands/<name>.test.ts`
### New e2e test
1. Add to `tests/e2e/lifecycle.e2e.ts` or create a new `*.e2e.ts` file
2. Use the Backlog list in E2E Tests space for creating test data
3. Always clean up: delete created tasks/checklists in `afterAll`
4. Use `describe.skipIf(!TOKEN)` to skip when no API token is set
5. Run `npm run test:e2e`
## Config for E2E
```bashFrom krodak/clickup-cli, MIT.
More from krodak/clickup-cli
- 0.780score
releasing-clickup-cli
krodak
Publishes a new version of clickup-cli to npm, updates Homebrew tap, writes release notes, and syncs the agent skill.
SkillAFreshness: A★ 126Claude Code +9 - 0.765score
clickup
krodak
Use when reading or changing anything in ClickUp via the `cup` CLI - tasks, sprints, comments, Docs, Chat, views, webhooks, or workspace structure.
SkillAFreshness: A★ 126Claude Code +9
Signals
- Stars
- 126
- Forks
- 21
- Open issues
- 0
- Last commit (this folder)
- Mar 31, 2026 (7 months ago)
- Last release
- Oct 6, 2026 (22 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/krodak/clickup-cli
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from krodak
- 0.780score
releasing-clickup-cli
krodak
Publishes a new version of clickup-cli to npm, updates Homebrew tap, writes release notes, and syncs the agent skill.
SkillAFreshness: A★ 126Claude Code +9 - 0.765score
clickup
krodak
Use when reading or changing anything in ClickUp via the `cup` CLI - tasks, sprints, comments, Docs, Chat, views, webhooks, or workspace structure.
SkillAFreshness: A★ 126Claude Code +9
Cite this page
testing-clickup-cli skill. Agent Mart. https://agentmart.dev/skills/krodak-testing-clickup-cli (last updated 2026-10-24)