> I know what a blacklist is. Nothing wrong with a blacklist. The problem is that the function is called "isVeganIngredient", and it returns true for "ham".
If you "know what a blacklist is", how can you fail to understand that it returns true for ham because it's a blacklist and thus assumes any missing item is OK?
Even if they add "ham" to the list, you'll always be able to find stuff that's not on the blacklist, because that's how blacklists work. Hákarl? Not on the blacklist, will be marked as vegan. Whale? Not on the blacklist, will be marked as vegan. Pizzle? Not on the blacklist, will be marked as vegan.
A blacklist means you'll have false negatives (items will pass which should not), and a whitelist means you'll have false positives (items will be flagged which should not). If you can't actually test properties, the only question you're left with is which failure mode is preferrable, but it's one or the other.
And in my opinion, things which have to do with health or safety are the latter (you'd rather avoid something which turns out to be safe than allow something which is not).