diff --git a/app/models/add_friend.rb b/app/models/add_friend.rb index d14e7e5..fdd7ccb 100644 --- a/app/models/add_friend.rb +++ b/app/models/add_friend.rb @@ -11,8 +11,8 @@ class AddFriend < Task alias :friend= :target= def perform - Friendship.create!(:person => requestor, :friend => target) - Friendship.create!(:person => target, :friend => requestor) + Friendship.create!(:person => requestor, :friend => target, :group => group_for_person) + Friendship.create!(:person => target, :friend => requestor, :group => group_for_friend) end # Returns false. Adding friends by itself does not trigger e-mail diff --git a/test/unit/add_friend_test.rb b/test/unit/add_friend_test.rb index 518c2a3..dff9f58 100644 --- a/test/unit/add_friend_test.rb +++ b/test/unit/add_friend_test.rb @@ -20,6 +20,20 @@ class AddFriendTest < ActiveSupport::TestCase ok('p2 should have p1 as friend') { p2.friends.include?(p1) } end + should 'put friendships in the right groups' do + p1 = create_user('testuser1').person + p2 = create_user('testuser2').person + + task = AddFriend.create!(:person => p1, :group_for_person => 'friend1', :friend => p2, :group_for_friend => 'friend2') + + assert_difference Friendship, :count, 2 do + task.finish + end + + ok('p1 should list p2 as friend1') { p1.friendships.first.group == 'friend1' } + ok('p2 should have p1 as friend2') { p2.friendships.first.group == 'friend2' } + end + should 'require requestor (person adding other as friend)' do task = AddFriend.new task.valid? -- libgit2 0.21.2