I agree. Context is everything. A "test" in a work environment is one thing, but at a restaurant? My priorities are totally different at a restaurant. I just want to eat and have a good time. I don't need to be in control. That's not why I'm at a restaurant.
At a restaurant, short of something truly egregious like hair in my food or raw meat, I have tremendous patience for wait staff. Mistakes happen. Kitchens can be hectic, orders get mis-entered. Maybe I wasn't clear about what I wanted. But at the end of the day, what I'm eating is far less of a priority than the fact that I'm eating with someone.
But if they bring a dish that wasn't what I ordered, I might just shrug and accept it. Who cares if it's a burger instead salmon and veg? It's not the end of the world for me.
Does that make me a pushover? I don't think so. It just means I don't prioritize restaurant food over other things, like ensuring the table has a good time and is socializing.
Likewise, if someone interrupted us at the table to say hi, I'd generally understand. Maybe it's rude, but we're in public and it's a social situation, and the world doesn't end if someone interrupts to say hi to the person I'm eating with.
But when I'm in the workplace, in context, then I am much firmer. You don't get to interrupt my meetings. You don't get to deliver the wrong project. I don't get to yell at anyone or treat anyone with disrespect, but I also don't need to tolerate disruption and chaos.