test-writer

Write integration and unit tests for this codebase. Generate test files following repo patterns. Use when adding tests, improving coverage, writing test cases, or creating test suites.

allowed_tools: Read, Grep, Glob, Write, Edit, Bash

$ Installer

git clone https://github.com/jamesjlundin/full-stack-web-and-mobile-template /tmp/full-stack-web-and-mobile-template && cp -r /tmp/full-stack-web-and-mobile-template/.claude/skills/test-writer ~/.claude/skills/full-stack-web-and-mobile-template

// tip: Run this command in your terminal to install the skill


name: test-writer description: Write integration and unit tests for this codebase. Generate test files following repo patterns. Use when adding tests, improving coverage, writing test cases, or creating test suites. allowed-tools: Read, Grep, Glob, Write, Edit, Bash

Test Writer

Creates tests following this repo's testing patterns.

When to Use

  • "Write tests for..."
  • "Add test coverage for..."
  • "Create integration test"
  • "Test this endpoint"
  • "Add unit tests for mobile"

Test Locations

TypeLocationFramework
Integration testspackages/tests/src/Vitest
Mobile unit testsapps/mobile/__tests__/Jest
Tools testingpackages/tools-testing/Custom
Evalspackages/evals/Custom

Procedure

Step 1: Identify What to Test

Determine test type needed:

  • API endpoint → Integration test in packages/tests/src/
  • React Native component → Unit test in apps/mobile/__tests__/
  • Shared package → Integration or unit test in package

Step 2: Read Existing Tests

Study patterns in existing tests:

Read: packages/tests/src/auth.cookie.test.ts
Read: packages/tests/src/stream.test.ts

Step 3: Write Test File

Use templates from templates.md.

Key patterns:

  • Use describe for grouping
  • Use it for test cases
  • Import helpers from ./http.ts
  • Use getTestToken() for auth

Step 4: Run Tests

# Integration tests (requires web server)
pnpm -C apps/web dev &  # Start server
pnpm test:integration

# Mobile unit tests
pnpm -C apps/mobile test

# Single test file
pnpm -C packages/tests vitest run src/{file}.test.ts

Step 5: Check Coverage

Ensure tests cover:

  • Happy path (success case)
  • Authentication (401 for protected routes)
  • Validation (400 for bad input)
  • Authorization (403 for forbidden)
  • Edge cases

Test Categories

Must Test

  • API endpoints (auth, validation, success)
  • Database operations (CRUD)
  • Authentication flows
  • Rate limiting behavior
  • Error handling

Should Test

  • Input edge cases
  • Concurrent requests
  • Token expiration
  • Mobile-specific flows

Guardrails

  • ALWAYS follow existing test patterns
  • ALWAYS clean up test data after tests
  • NEVER hardcode credentials in tests
  • NEVER skip authentication tests
  • Use environment variables for config
  • Tests must be deterministic (no random failures)