Estoy tratando de probar una función con broma, y simplemente puedo averiguar qué está mal. Sigue diciendo que espera devolver la salida, pero no está definido. Probé la función en otro lugar donde parece devolver la matriz correcta.
Llamo a mi función y le paso un Objeto, luego se supone que debe devolver una matriz. Luego llamo a .toEqual(output) que es una matriz.
//This is my function const allAddresses = [ ]; const updateAllAddresses = (obj) => { const transferAmount = obj.transferAmount; const to = obj.to; const transferAddress = obj.address; const newBalance = obj.newBalance; const addressArr = [...allAddresses]; console.log("This addressArr", addressArr); console.log("this is obj", obj); //To set your account to the new balance after transfer and //to check if the address you transfer to is your own account addressArr.map((address) => { if (address.account === transferAddress) { console.log("This is inside the map !!!!"); address.balance = Number(newBalance); } if (address.account === to) { console.log("2"); address.balance = Number(transferAmount) + Number(address.balance); } console.log("last part of the testing", addressArr); return addressArr; }); }; const obj = { }; const output = [ ]; //This is my test describe("Update array", () => { test("update the array with the new information", () => { expect(updateAllAddresses(obj)).toEqual(output); }); });
Hay un problema con su método updateAllAddresses
. No está devolviendo nada, entonces el resultado de su función se vuelve undefined
;
agregue return
a donde está usando el método .map.
return addressArr.map((address) => { if (address.account === transferAddress) { console.log("This is inside the map !!!!"); address.balance = Number(newBalance); } if (address.account === to) { console.log("2"); address.balance = Number(transferAmount) + Number(address.balance); } console.log("last part of the testing", addressArr); return address; });
No puede cortocircuitarse y regresar dentro de una función de map
. Debes devolver el objeto después del map
.
Además, cuando cambias address
dentro del map
; Realmente no cambia nada, ya que esa variable de address
se eliminará de la memoria en la próxima iteración