Spot the bug in reservation callers

from Generated change review
Node 24 intermediate 6 min 3 issues to find

Find the edge-case and cross-boundary defects in this generated reservation change.

JavaScript
function reserve(stock, quantity) {
  return {
    ok: quantity <= stock,
    remaining: quantity <= stock ? stock - quantity : stock,
  };
}

function checkout(inventory, sku, quantity) {
  const result = reserve(inventory.get(sku), quantity);
  if (result) {
    inventory.set(sku, inventory.get(sku) - quantity);
    return "reserved";
  }
  return "out of stock";
}
Open in playground
Report an error