Estoy trabajando con Mocha.js para probar en Node.js - Express.js - Firebase
Necesito un token de Firebase para acceder a los puntos finales de la API, tengo un enlace anterior en todos mis archivos, pero después de unas 250 pruebas, probablemente llamando al punto final de autenticación varias veces, Firebase me limita la tasa.
Quiero obtener el token una vez y usarlo en todas mis pruebas.
Las pruebas están distribuidas en diferentes archivos, tengo un index.js que las requiere todas. Conozco los ganchos de nivel raíz, pero ¿cómo puedo guardar el token y usarlo en todos mis archivos separados?
¡Gracias!
puede crear una función que obtenga el token. entonces llámalo. luego cree su conjunto de pruebas solo después de eso
function getToken(callback) { // } // define tests function allTests(token) { describe(xxxxxx, function () { it(xxxxxxxxx, function() { // }) }); } // start all getToken(function(token) { allTests(token); });
Logré resolverlo yo mismo, si alguien necesita una respuesta sobre cómo abordarlo, eche un vistazo a esto.
Tengo varios archivos donde escribimos nuestras pruebas unitarias, los unimos en un index.spec.js que ejecutamos para probar ($ mocha index.spec.js)
Creé un archivo de utilidad que se ve así:
let token; (() => { token = getYourToken() })() module.exports = { getToken: () => { return new Promise((resolve) => { const interval = setInterval(() => { if (token) { clearInterval(interval); resolve(token); } }, 100); }); } };
Básicamente, es un singleton, en index.spec.js necesito este archivo, ejecutando 'getYourToken()' una vez (agregue su lógica para obtener el token aquí). Luego lo almaceno en una variable que luego exporto. En la exportación, uso un intervalo porque mi código actual no usa promesas, use su método de mejores prácticas, intervalo + Promesa funcionó para mí.
De esta manera, necesito este archivo en mis pruebas y obtengo el token que obtuve al principio una vez, evitando la limitación de velocidad y cualquier problema con firebase.