Marketplace backend-test-writer
Use when generating tests for backend code (Express routes, MongoDB models, Node services) - analyzes file type, detects test framework from package.json, generates comprehensive tests with setup/teardown and edge case coverage
git clone https://github.com/aiskillstore/marketplace
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/9tykeshav/backend-test-writer" ~/.claude/skills/aiskillstore-marketplace-backend-test-writer && rm -rf "$T"
skills/9tykeshav/backend-test-writer/SKILL.mdBackend Test Writer
Generate comprehensive backend tests for MERN stack code. Analyzes file type, detects project conventions, produces tests that actually run.
Philosophy: Smart defaults, zero config. Detect everything from project.
<workflow>Workflow
Copy and track progress:
- Phase 0: Infrastructure check
- Phase 1: Analyze target files
- Phase 2: Generate tests
- Phase 3: Report summary
Phase 0: Infrastructure Check
Before generating tests, verify setup:
- Check
for test framework (Jest/Vitest/Mocha)package.json - If none → prompt: "Set up Jest + Supertest?"
- Check for
(needed for integration tests)mongodb-memory-server - Detect test file convention (colocated vs
vs__tests__/
)tests/
Stop if: No test framework and user declines setup.
Phase 1: Analyze Target Files
| Pattern | Type | Test Approach |
|---|---|---|
, | Route | Integration (Supertest + real DB) |
| Controller | Integration |
| Service | Unit (mocked deps) |
, | Model | Unit (validation tests) |
| Middleware | Unit (mock req/res/next) |
, | Utility | Unit (pure functions) |
Override: User can specify
--unit or --integration.
Phase 2: Generate Tests
Process files sequentially with progress. User can stop anytime.
Each test includes:
- Proper imports for detected framework
- Setup/teardown (DB connection, cleanup)
- Comprehensive coverage:
- Success cases (happy path)
- Validation errors (400)
- Not found (404)
- Auth failures (401/403) if protected
- Edge cases (duplicates, empty, null)
Reference: See test-patterns.md for complete code examples.
Phase 3: Report
</workflow> <quick-reference>Generated: X test files Coverage: Y test cases total Next: Run `npm test` to verify
Quick Reference
| File Type | Imports | DB Setup |
|---|---|---|
| Route | , | Real (in-memory) |
| Service | | Mocked |
| Model | | Mocked |
| Middleware | | None |
Test Structure Pattern
</quick-reference> <checklists>describe('[Resource] [Method]', () => { describe('success cases', () => { it('should [expected behavior]', async () => {}); }); describe('validation errors', () => { it('should return 400 for [invalid case]', async () => {}); }); describe('edge cases', () => { it('should handle [edge case]', async () => {}); }); });
Checklists
Infrastructure (Check First)
- Test framework in
package.json - Test script defined (
)"test": "jest" - Supertest installed (integration tests)
- mongodb-memory-server installed (DB tests)
Per-File Generation
- Check for existing tests first (gap analysis if found)
- Correct imports for file type
- Setup/teardown included
- Happy path tested
- Error cases tested (400, 404, 401)
- Edge cases tested (domain-specific: date→DST/timezone, money→precision, etc.)
- No secrets in assertions
- Async/await handled properly
- Priority assigned to each test (P0=critical, P1=important, P2=nice-to-have)
- Test helper factories suggested for complex inputs
Common Mistakes
| Mistake | Fix |
|---|---|
| Starting server in tests | Import app, let Supertest handle it |
| No DB cleanup | Add with |
| Testing implementation | Test behavior through HTTP interface |
| Missing async/await | Await async operations |
| Mocking in integration tests | Use real DB for integration |
Guidelines
- Don't generate tests for unread code
- Don't skip infrastructure check
- Don't generate only happy paths
- Don't forget cleanup between tests
Reference Files
Load when implementing specific patterns:
| When | Reference |
|---|---|
| Writing any test | test-patterns.md |
| Setting up test infrastructure | test-setup.md |