It looks like you are handling the insufficient funds scenario well enough.
I gave your code this:
checkCashRegister(18.5, 20,
[[“PENNY”, 0.01],
[“NICKEL”, 0],
[“DIME”, 0],
[“QUARTER”, 0],
[“ONE”, 1],
[“FIVE”, 0],
[“TEN”, 0],
[“TWENTY”, 0],
[“ONE HUNDRED”, 0]]);
and it gave me back
{ status: ‘INSUFFICIENT_FUNDS’, change: }
That result seems to be correct in this case.