# AI-Assisted Test Generation Quick Reference

## Prompt Checklist

- [ ] Function/code under test
- [ ] Framework (Jest, Vitest, Playwright)
- [ ] Case types (happy, edge, error)
- [ ] One example test for style
- [ ] Constraints (no mocks for X, use RTL)

## AI Strengths

| Strength | Use For |
|----------|---------|
| Boilerplate | describe, it, expect structure |
| Edge cases | Empty, null, boundary suggestions |
| Test data | Fixtures, mocks, invalid inputs |
| Test doubles | Stub/mock generation |

## AI Weaknesses

| Weakness | Human Must |
|----------|------------|
| Intent | Provide context and priorities |
| What matters | Choose what to test |
| Assertion quality | Review and strengthen |
| Framework quirks | Specify and verify |

## Review Checklist for Generated Tests

- [ ] Assertions verify behavior, not just "defined"
- [ ] Edge cases and errors covered
- [ ] Mocks justified (not over-used)
- [ ] Test names are descriptive
- [ ] Tests are independent

## Common Pitfalls

| Pitfall | Fix |
|---------|-----|
| expect(x).toBeDefined() | Assert expected value (toBe, toEqual) |
| Over-mocking | Use real deps for integration |
| Wrong framework | Specify in prompt; refine and regenerate |
| Missing edge cases | Ask for "boundary and invalid inputs" |

## Iteration Loop

```
Prompt → Generate → Run → Review → Refine prompt → (repeat)
```

## By Layer

| Layer | AI Does | You Do |
|-------|---------|--------|
| Unit | Draft + edge cases | Verify assertions, add critical cases |
| Integration | Setup, fixtures | Verify real flows, DB state |
| E2E | Steps, selectors | Choose scenarios, reduce flakiness |

## One-Liners

- **Context wins**: Function + framework + examples = better tests.
- **Review always**: AI drafts; you verify.
- **Iterate prompts**: Save what works for your stack.
- **Human + AI**: You direct; AI speeds you up.
