Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

357
Vistas
¿Cómo agregar alias de módulo a las pruebas de Jest en Next.js?

Actualmente estoy usando importaciones automáticas en mi proyecto Next.js, configurado por jsconfig.json en el directorio raíz:

 { "typeAcquisition": { "include": ["jest"] }, "compilerOptions": { "baseUrl": ".", "paths": { "@/components/*": ["components/*"], "@/functions/*": ["functions/*"], "@/styles/*": ["styles/*"], "@/pages/*": ["pages/*"] } }, "exclude": ["node_modules"] }

Cuando agrego pruebas de broma en un directorio de test en la raíz, las pruebas no apuntan hacia el directorio raíz. Yo he tratado:

  • agregando un archivo jest.config.js que apunta al directorio raíz
  • agregando typeAcquisition a jsconfig.js
  • agregando un jsconfig.js al directorio de tests .

No estoy seguro de cuál es el camino correcto o cómo configurarlo correctamente, pero ninguno de estos parece funcionar para mí. Puedo hacer que las pruebas se ejecuten eliminando las importaciones por completo y, en su lugar, simplemente ../../ -ing mi camino a través del directorio, pero esto requiere que también cambie todos los archivos anidados, es decir: en pages/api/budget , llamo a un controlador para ir a functions/api/fetchBudget . Para que la prueba Jest lo alcance, tengo que cambiar las declaraciones de importación en ambos para usar la sintaxis estándar ../../ , en lugar de @pages/.. o @functions que he configurado.

TL; DR: ¿Cómo configuro las pruebas de Jest para pasar por el directorio raíz de mi proyecto jsconfig.json ? o, en lugar de eso, ¿cómo puedo configurar la prueba Jest con su propio jsconfig.json ?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Debe configurar Jest para resolver las importaciones para que coincidan con las rutas que tiene en el archivo jsconfig.json . Esto se hace a través de la propiedad moduleNameMapper en su archivo jest.config.js .

 // jest.config.js module.exports = { moduleNameMapper: { '^@/components/(.*)$': '<rootDir>/components/$1', '^@/functions/(.*)$': '<rootDir>/functions/$1', '^@/styles/(.*)$': '<rootDir>/styles/$1', '^@/pages/(.*)$': '<rootDir>/pages/$1' }, // Other configs }

Para obtener más detalles, consulte los documentos de prueba de Next.js.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Recomendaría agregar ts-jest en su proyecto (npm i -D ts-jest) . Después de eso, se debe implementar la función pathsToModuleNameMapper para inyectar sus rutas de tsconfig en su configuración de jest.config :

 // jest.config.js const nextJest = require("next/jest"); const { pathsToModuleNameMapper } = require("ts-jest"); const { compilerOptions } = require("./tsconfig"); const createJestConfig = nextJest({ dir: "./", }); const customJestConfig = { setupFilesAfterEnv: ["<rootDir>/jest.setup.js"], modulePaths: ["<rootDir>/src"], moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths), testEnvironment: "jest-environment-jsdom", }; module.exports = createJestConfig(customJestConfig);
about 4 years ago · Juan Pablo Isaza Denunciar

0

El problema era que quería agregar automáticamente el mismo apodo definido en tsconfig.json, no agregarlo nuevamente en jest config.

"@components/(.*)": "<rootDir>/src/components/$1", a jest.config.js y funcionó, pero no es la solución correcta,

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda