Testing Skill
Instructions
- •Place tests in
src/__tests__/ - •Use
describe/it/expectpattern - •Mock Firebase with helpers in
helpers/mock-firebase.ts - •Run:
pnpm test(watch) orpnpm test:run(once)
Test Template
typescript
import { describe, it, expect, beforeEach, vi } from 'vitest'
describe('functionName', () => {
beforeEach(() => vi.clearAllMocks())
it('should do something when condition', () => {
const result = functionName(input)
expect(result).toBe('expected')
})
it('should throw error for invalid input', () => {
expect(() => functionName(null)).toThrow('Error')
})
})
Common Assertions
typescript
expect(value).toBe(expected)
expect(value).toEqual({ key: 'value' })
expect(array).toContain(item)
expect(fn).toHaveBeenCalledWith(arg)
expect(async () => await fn()).rejects.toThrow()
Coverage Targets
- •Statements: 80%
- •Branches: 70%
- •Functions: 80%
For mocking patterns, API testing, and component testing, see reference.md.