Cash Regisher cant pass tests

Hello everyone,
Can’t seem to pass the last cash register challenge even though my return value is the same as the tests but tests are failing, any help?

var currency = [
    { name: "ONE HUNDRED", value: 100.0 },
    { name: "TWENTY", value: 20.00 },
    { name: "TEN", value: 10.00 },
    { name: "FIVE", value: 5.00 },
    { name: "ONE", value: 1.00 },
    { name: "QUARTER", value: 0.25 },
    { name: "DIME", value: 0.10 },
    { name: "NICKEL", value: 0.05 },
    { name: "PENNY", value: 0.01 }
  ];
  function outputMessage(status, change=[]){
    let message = {
    status: null,
    change: []
  };
    message.status = status;
    message.change = change; 
    return message;
  }
  
  
  function getChange(giveChange, drawer){
    let totalChange = currency.reduce((acc,curr)=>{
      let value = 0;
      while(drawer[curr.name]>0 && giveChange>=curr.value){
          giveChange-=curr.value;
          drawer[curr.name]-= curr.value;
          value +=curr.value;
          giveChange = formatValue(giveChange);
      }
      if(value>0){
        acc.push([curr.name, value]);
      }
      return acc;
  
    },[])
    if(totalChange< 1 || giveChange>0){
      outputMessage("INSUFFICIENT_FUNDS");
    }
      outputMessage("OPEN", totalChange);
  
  }
  
  
  
  
  function formatValue(value){
    return parseFloat(value.toFixed(2));
    
  }
  
  
  function calculateChange(price, cash){
    let value = parseFloat(cash)-parseFloat(price)
    return formatValue(value);
  }
  
  
  function totalCid(cid){
    let total = 0;
    total = cid.reduce(function(acc, curr) {
        acc.total += curr[1]
        acc[curr[0]] = curr[1];
        return acc;
  
      },
      { total: 0 })
      return total;
  }
  
  
  function checkCashRegister(price, cash, cid) {
    let change = calculateChange(price, cash);
    var drawer = totalCid(cid);
    drawer.total = formatValue(drawer.total)
    if (drawer.total === change) {
      return outputMessage("CLOSED",cid);
    }
  
    if (drawer.total < change) {
      return outputMessage("INSUFFICIENT_FUNDS");
    }
    getChange(change,drawer);
  }
  
  
  checkCashRegister(19.5, 20, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]]);

I figured the problem, Thanks