Function not working

Tell us what’s happening:
This works on Node on my computer. I have manually verified all test cases on my computer. Of course this doesn’t mean I am right, just a little lost is all.

Your code so far


// Setup
var collection = {
2548: {
  album: "Slippery When Wet",
  artist: "Bon Jovi",
  tracks: [
    "Let It Rock",
    "You Give Love a Bad Name"
  ]
},
2468: {
  album: "1999",
  artist: "Prince",
  tracks: [
    "1999",
    "Little Red Corvette"
  ]
},
1245: {
  artist: "Robert Palmer",
  tracks: [ ]
},
5439: {
  album: "ABBA Gold"
}
};

// Only change code below this line
function updateRecords(id, prop, value) {
if(id in collection) {
  
  if(prop === "artist") {
    collection[id][prop] = value;
  }
  if(prop === "album") {
    collection[id][prop] = value;
  }
  else if(prop === "tracks" && !collection[id].hasOwnProperty("tracks")) {
    collection[id][prop] = value;
  }
  else if(prop === "tracks" && collection[id].hasOwnProperty("tracks")) {
    if(value !== "") {
      collection[id][prop].push(value);
    }
    else 
    {
      collection[id][prop] = "";
    }
  }
  else
  {
    console.log("Error");
    return;
  }
}
else 
{
  console.log("ID not found");
  return;
}
return collection;
}
updateRecords(5439, "artist", "ABBA") // artist should be "ABBA" yes
updateRecords(5439, "tracks", "Take a Chance on Me") // tracks should have "Take a Chance on Me" as the last element. yes
updateRecords(2548, "artist", "") // artist should not be set yes
updateRecords(1245, "tracks", "Addicted to Love") // tracks should have "Addicted to Love" as the last element. yes
updateRecords(2468, "tracks", "Free") // tracks should have "1999" as the first element. yes
updateRecords(2548, "tracks", "") // tracks should not be set yes
updateRecords(1245, "album", "Riptide") // album should be "Riptide

Your browser information:

User Agent is: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0.

Challenge: Record Collection

Link to the challenge:

Well, what are the failing tests saying?

I found a better solution than my spaghetti code on the internet and stepped through it while typing it out. Consider this resolved. Thank you very much for responding though!

when prop is tracks the property should have value of an array