Estoy usando broma para probar mi componente reactJS. En mi componente reactJS, necesito usar jquery UI, así que agregué esto en el componente:
var jQuery = require('jquery'); require('jquery-ui/ui/core'); require('jquery-ui/ui/draggable'); require('jquery-ui/ui/resizable');Y funcionó bien. Pero, ahora, necesito usar jest para hacer pruebas, pero inmediatamente me encuentro con este problema cuando cargo el componente en testutils,
Test suite failed to run ReferenceError: jQuery is not defined¿Alguien ha resuelto este problema si está usando jQuery en su aplicación?
Gracias
Puede agregar la dependencia de jQuery en su objeto global . Haz lo siguiente
package.json , bajo la clave de jest , agregue setupFiles de configuración como este "setupFiles": ["test-env.js"] Por ejemplo: { "jest": { "setupFiles": [ "<rootDir>/tests/test-env.js" ] } }test-env.js ven así import $ from 'jquery'; global.$ = global.jQuery = $; Asegúrese de que la ruta a test-env.js sea correcta desde su directorio raíz. <rootDir> está disponible en Jest.
Si está utilizando Jest 27+, el nodo ahora es el testEnvironment predeterminado. Si necesita usar jQuery en el script de configuración de jest, asegúrese de cambiar primero testEnvironment de nuevo a jsdom .
en jest.config.js :
module.exports = { setupFilesAfterEnv: ['./jest.setup.js'], testEnvironment: 'jsdom' } en jest.setup.js :
import $ from 'jquery'; global.$ = $; global.jQuery = $; // If you want to mock bootstrap global.$.fn.modal = jest.fn(() => $()); global.$.fn.carousel = jest.fn(() => $()); global.$.fn.tooltip = jest.fn(() => $());