# Test Writer

> Write unit tests for any function — happy path, edge cases, and error cases. Use when the user asks for tests, wants to add test coverage, or is practicing TDD.

- Skill: `hamzafarooq/test-writer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hamzafarooq/test-writer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hamzafarooq/test-writer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: hamzafarooq (https://skillmd.com/u/hamzafarooq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hamzafarooq/test-writer

---


Ask the user to share the function or code they want tests for.

Then write tests covering:

## Tests for `[functionName]`

**Testing framework:** [detect from package.json — Jest, Vitest, pytest, etc. Ask if unclear]

---

### Happy path
Test the expected behavior with valid inputs. One test per meaningful variation.

```[language]
test('returns [expected] when given [input]', () => {
  // arrange
  // act
  // assert
})
```

### Edge cases
Tests for boundary conditions and unusual but valid inputs:
- Empty input (empty string, empty array, 0)
- Single item
- Maximum size or value
- Special characters (if string input)

### Error cases
Tests that verify the function fails correctly:
- Invalid input types
- Null/undefined inputs
- Inputs that should trigger error handling

### Mock requirements
List any external dependencies (API calls, database queries, file system) that need mocking, with example mock setup.

---

**Coverage target:** Aim for all branches, not just lines. Flag any branch that is difficult to test and explain why.

Write tests that read like documentation — the test name should be a sentence explaining what the function does in that scenario.

