Documentación oficial sobre Jest
- Instalaciones de desarrollo (super test es útil para probar Express)
npm install -D jest @types/jest ts-jest supertest
- Crear archivo de configuración de Jest
npx jest --init
- En el archivo jest.config.js configurar
preset: 'ts-jest',
testEnvironment: "jest-environment-node",
// Opcional - The paths to modules that run some code to configure or set up the testing environment before each test
// setupFiles: ['dotenv/config'],
- Crear scripts en el package.json
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage",
Posibles errores con Jest + TypeScript
import/exportenjest.config.jsCuando TypeScript no reconoce la sintaxis
importyexporten archivos comojest.config.ts, puede deberse a la propiedad"verbatimModuleSyntax"en el archivotsconfig.json. Esta propiedad activa un modo estricto que prohíbe mezclar sintaxis de módulos CommonJS y ESModule.✅ Solución
Comenta temporalmente esta línea en
tsconfig.json:// "verbatimModuleSyntax": trueEsto desactiva el modo estricto y permite usar tanto
require/module.exportscomoimport/exportsin conflicto.Este error aparece cuando el editor subraya funciones como
describe,testoexpectcomo si no existieran. Sin embargo, Jest funciona correctamente al ejecutar los tests, ya que este error solo afecta al tipado en tiempo de desarrollo.✅ Causa
TypeScript no está detectando los tipos globales de Jest, posiblemente porque
@types/jestno se está aplicando correctamente.✅ Solución
jest.setup.tsen la raíz del proyecto./// <reference types="jest" />Esto le indica explícitamente a TypeScript que debe incluir los tipos globales de Jest.
ℹ️ ¿Qué significa
/// <reference types="..." />?Es una directiva especial que le dice al compilador:
No es un comentario común, sino una instrucción que afecta el entorno de tipado.
✅ Actualiza
tsconfig.jsonAsegúrate de incluir el archivo de setup en la configuración: