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

298
Vistas
Errores de broma inesperados al burlarse de Uppy

Estoy intentando simular la clase Uppy del paquete uppy en una prueba de unidad Jest siguiendo la guía de esta pregunta respondida anteriormente . Mi código fallido está a continuación:

 import Uppy from '@uppy/core'; describe('MyComponent', () => { it('renders', () => { jest.mock('@uppy/core', () => { return { Uppy: jest.fn().mockImplementation(() => { return {}; }), }; }); new Uppy(); expect(Uppy).toHaveBeenCalledTimes(1); }); });

La prueba falla con el siguiente mensaje de error:

 Matcher error: received value must be a mock or spy function Received has type: function Received has value: [Function Uppy]

Parece que la exportación predeterminada de @uppy/core es la clase Uppy , por lo que mi expectativa es que el código proporcionado se burlará del constructor de la clase, sin embargo, este no parece ser el caso.

Versiones del paquete:

  • Uppy: 2.1.2
  • broma: 27.4.7
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que el problema es que estás usando jest.mock() en el momento equivocado. En otras palabras, creo que es demasiado tarde para llamar a jest.mock() dentro de un caso de prueba porque el paquete ya se ha importado en ese momento.

No estoy seguro de cuál es la forma canónica de hacer esto, pero así es como lo hace React:

  • tiene un archivo separado donde se jest.mock()
  • la ruta de ese archivo desde arriba es el valor de la opción globalSetup de Jest; como puede ver, esta opción está en el archivo config.base.js :
 module.exports = { globalSetup: require.resolve('./setupGlobal.js'), }
  • cuando se ejecuta el script de prueba, elegirá la configuración en función de los argumentos proporcionados

  • un ejemplo de dicha configuración sería este archivo que, como puede ver, extiende config.base , que es donde se ha configurado la opción globalSetup

 /* ... */ const baseConfig = require('./config.base'); module.exports = Object.assign({}, baseConfig, { /* ... */ }); /* ... */

Entonces, diría que hacer uso de esa opción globalSetup debería resolver el problema.

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