Mientras realizo pruebas con Jest, recibo una advertencia que dice: "Un proceso de trabajo no pudo salir correctamente y se forzó a salir. Esto probablemente se deba a que las pruebas se filtraron debido a un desmontaje inadecuado. Intente ejecutar con --detectOpenHandles para encontrar fugas". Me doy cuenta de que esto viene porque dentro de una de las funciones uso Bull https://github.com/OptimalBits/bull que usa Redis. Entonces, al agregar una tarea a la cola, aparece esta advertencia. Yo uso la configuración de Bull por defecto (sin configuración). Tengo una maqueta para la función de agregar en la cola que usa Jest, sin embargo, no ayudó.
const notificationQueue = { add: jest.fn().mockImplementation((data: any, opts?: JobOptions) => {}), };Me gustaría saber si hay alguna forma de evitar esta advertencia. Si ayuda, uso mongo en la memoria para probar, pero redis es uno real. Como nota al margen, cuando ejecuto cada conjunto de pruebas por separado, no veo esta advertencia, solo cuando ejecuto todas las pruebas.
Como se sugiere en la advertencia, agregue la opción --detectOpenHandles al script de jest en el archivo package.json:
"scripts": { "test": "jest --watchAll --detectOpenHandles" }¡No olvide detener y luego iniciar el servidor!
Esta solución puede funcionar sea cual sea su problema. Pero, según tu caso, tu problema viene de la conexión redis . Debe cerrar redis al final de la prueba :
import { redis } from "redis_file_path"; afterAll(async () => { await redis.quit(); });