🧪

Testing de APIs

👨‍🍳 Chef⏱️ 25 minutos

📋 Prerequisitos sugeridos

  • API REST
  • Jest o Vitest

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')
  })
})

Próximo paso

App Móvil con Expo