diff --git a/app/models/invitation.rb b/app/models/invitation.rb index 25ed11b..0f89515 100644 --- a/app/models/invitation.rb +++ b/app/models/invitation.rb @@ -64,7 +64,7 @@ class Invitation < Task task_args = if user.nil? {:person => person, :friend_name => friend_name, :friend_email => friend_email, :message => message} - elsif !user.person.is_a_friend?(person) + elsif !(user.person.is_a_friend?(person) && profile.person?) {:person => person, :target => user.person} end diff --git a/test/unit/invitation_test.rb b/test/unit/invitation_test.rb index 1a8d224..27aee60 100644 --- a/test/unit/invitation_test.rb +++ b/test/unit/invitation_test.rb @@ -72,6 +72,29 @@ class InvitationTest < ActiveSupport::TestCase end end + should 'do nothing if the invited friend is already your friend' do + person = create_user('person').person + invited_friend = create_user('invited_friend').person + + invited_friend.add_friend(person) + + assert_no_difference InviteFriend, :count do + Invitation.invite( person, [invited_friend.user.email], "", person ) + end + end + + should 'and yet be able to invite friends to community' do + person = create_user('person').person + invited_friend = create_user('invited_friend').person + + invited_friend.add_friend(person) + community = fast_create(Community) + + assert_difference InviteMember, :count do + Invitation.invite( person, [invited_friend.user.email], "", community ) + end + end + should 'add url on message if user removed it' do person = create_user('testuser1').person friend = create_user('testuser2').person -- libgit2 0.21.2