Quiero escribir una prueba simple para mi aplicación vue3, la prueba debe afirmar que la función específica (updateRoute en este caso) se declara con async en diferentes componentes
Nota: según mi proyecto actual, no puedo aislar esta función en un solo archivo para que sea reutilizable
ejemplo:
const updateRoute = () => { doSomethig() }debería fallar
mientras
const updateRoute = async () => { await doSomethig() }debería pasar
la biblioteca de prueba no importa, puede ser broma o cualquier otra cosa
No hay una forma confiable ni ninguna razón para detectar la función async . Para una función que devuelve una promesa, es lo mismo que:
const updateRoute = () => { return doSomethig().then(() => {}) // Returns a promise of undefined } Debe probarse que updateRoute devuelve una promesa, con async o no. En broma es:
expect(updateRoute()).toEqual(expect.any(Promise)); En cuanto a la await obligatoria, esto se puede manejar con la regla require-await obligatoria de ESLint si es necesario.
Compruebe si el nombre del contructor.name de la función es igual a 'AsyncFunction' :
const x = async () => {}; const y = () => {} console.log(x.constructor.name); console.log(x.constructor.name === 'AsyncFunction'); console.log(y.constructor.name); console.log(y.constructor.name === 'AsyncFunction');