Así que estoy ejecutando una prueba Jest muy básica para probar si una de mis rutas devuelve un 200.
import request from 'supertest'; import app from './../app'; describe('GET /', () => { it('should render properly', async () => { await request(app).get('/api/testing').expect(200); }); });Esto funcionaba perfectamente, luego configuré webpack-hot-middleware y parece fallar en la línea 2 donde importo la aplicación.
TypeError: setInterval(...).unref is not a function at createEventStream (node_modules/webpack-hot-middleware/middleware.js:50:17) at webpackHotMiddleware (node_modules/webpack-hot-middleware/middleware.js:12:21) at Object.<anonymous> (server/app.js:62:73) at Object.<anonymous> (server/test/routes.test.js:2:38)Si elimino el siguiente código de mi app.js, todas las pruebas funcionan bien.
app.use(middleware); app.use(webpackHotMiddleware(compiler)); app.get('*', (req, res) => { res.write(middleware.fileSystem.readFileSync(path.join(__dirname, '../dist/index.html'))); res.end(); });¿Alguien ha configurado Jest para webpack-hot-middleware? Estoy un poco perdido porque siento que lo he intentado todo.
Debe establecer la opción de configuración testEnvironment Jest en node . unref() existe solo en Node.js.
Al agregar un docblock @jest-environment en la parte superior del archivo, puede especificar otro entorno que se utilizará para todas las pruebas en ese archivo, consulte la documentación de jest
/** * @jest-environment jsdom */ import request from 'supertest'; import app from './../app'; describe('GET /', () => { it('should render properly', async () => { await request(app).get('/api/testing').expect(200); }); });