Estoy usando mocha para probar una API y necesito esperar hasta que la respuesta sea la esperada. Estaba luchando por descubrir cuál es la mejor práctica para hacerlo, porque no quiero usar setTimeout() , sería una mala práctica perezosa. Quiero realizar una llamada a la API cada pocos segundos hasta que se cumpla la afirmación o, si no es posible, una condición sea true . intenté usar setInterval() pero no funciona como it esperaba dentro (¿alguien sabe por qué?). ¿alguien tiene alguna idea de cómo lograr tal objetivo?
este es mi código -
it.only('' , async() => { const userId = "test"; const deviceId = "test"; let counter = 0; const ticketId = await apiHelpers.getTicketId(deviceId, userId); let intervalID = setInterval(function() { response = await apiHelpers.getTicketById(ticketId); counter++; }, 20000); if (response.tags.includes('enriched')) { clearInterval(intervalID); } else if (counter > 2) { clearInterval(intervalID); assert.fail('not enriched') } });