Tengo una aplicación javascript con un archivo llamado index.js de la siguiente manera:
module.exports.func = async (obj) => { return { statusCode: 200, body: JSON.stringify({ message: 'Success!', input: obj, }), }; };Para probar esto, he escrito otro archivo llamado index.test.js, que tiene el siguiente código (aún no está completo pero tiene el código para ilustrar mi problema):
const exportedModule = require('./index'); test('Successfully execute func when empty object passed', () => { const obj = {}; const expectedReturn = { statusCode: 200, body: JSON.stringify({ message: 'Success!', input: obj, }), }; const actualReturn = exportedModule.func(obj); console.log(actualReturn); expect(actualReturn).toBe(expectedReturn); }); Cuando se ejecuta este código, la función console.log(actualReturn) Promise { <pending> } . Normalmente, abordaría esto agregando un await antes de exportedModule.func, pero por alguna razón esto no funciona y aparece un error que dice que exportedModule.func no es asíncrono (aunque he usado async al escribir la función). ¿Alguien sabría la forma correcta de obtener el valor devuelto real de la función, y no una promesa? ¿O hay algún problema con la forma en que obtengo la función func que hace que no se reconozca como asíncrona?