Lo que vas a construir
Una suite de tests automatizados que verifica que todos los endpoints de tu API funcionan correctamente antes de cada deploy. Usaras Vitest y Supertest para escribir tests que simulan peticiones HTTP, verifican respuestas, y mockean la base de datos para tests aislados y rapidos. Al terminar, tendras tests para operaciones CRUD completas, casos de error, autenticacion, y un reporte de cobertura que te dice que porcentaje de tu codigo esta testeado.
Paso 1: Pídele a una IA los tests
Necesito tests para una API REST con:
- Vitest + supertest
- Tests para cada endpoint (GET, POST, PUT, DELETE)
- Mock de base de datos
- Tests de autenticación
- Coverage report
Dame los tests completos para un CRUD de users.
Setup
pnpm add -D vitest supertest @types/supertest
Test ejemplo
import { describe, it, expect } from 'vitest'
import request from 'supertest'
import { app } from '../app'
describe('Users API', () => {
it('GET /api/users returns users', async () => {
const res = await request(app).get('/api/users')
expect(res.status).toBe(200)
expect(Array.isArray(res.body)).toBe(true)
})
it('POST /api/users creates user', async () => {
const res = await request(app)
.post('/api/users')
.send({ email: 'test@test.com', name: 'Test' })
expect(res.status).toBe(201)
expect(res.body.email).toBe('test@test.com')
})
})