As I'm mocking the ```group_member_create()``` call here, what do you think about mocking that to fail, and testing if ```user_invite()``` fails, and then mocking it to succeed, and test if we succeed?

I don't have a problem breaking the DRY principle in tests, as I'd rather them be more explicit/maintainable than DRY, but not much in this case. Here I don't have specific requirements for ```user_invite```. What I really want is for it to behave the same as ```group_member_create```. I've only created a new auth function because someone might want to overload that, so it's more flexible this way.