es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Jest se queja al usar web3.eth – error de mango abierto.

Estoy recibiendo el siguiente error:

Jest ha detectado el siguiente 1 manejador abierto que potencialmente evita que Jest salga:

Al ejecutar una prueba simple como esta:

var currentProvider = new Web3.providers.HttpProvider('https://ropsten.infura.io/v3/XXXXXXXXX');
var web3 = new Web3(currentProvider);
const info = await web3.eth.getBlock('latest')
expect(info.gasLimit).toBeGreaterThan(0)

El error apunta a getBlock.

const info = await web3.eth.getBlock('latest')

No entiendo cuál es el problema y cómo manejar esto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error está sugiriendo que hay un controlador abierto en su código que está impidiendo que Jest salga. Esto ocurre típicamente cuando las operaciones asíncronas no se limpian correctamente o cuando las promesas no se resuelven. En su caso, parece que la función getBlock de web3.eth no está finalizando correctamente la operación asíncrona, lo que está causando el error.

    Para solucionar este problema, puede intentar agregar una función de limpieza explícita a su código de prueba que cierre la conexión a la red Ethereum una vez que se complete la prueba. Puede lograr esto utilizando la función afterEach en Jest, como se muestra a continuación:

    afterEach(() => {
      currentProvider.connection.close();
    });
    

    Esto asegurará que la conexión a la red Ethereum se cierre correctamente después de cada prueba, lo que debería resolver el error de controlador abierto.

Comments are closed.