Commit fd3ac0d828fc2f33e6aa0f81b7de3e249c06b019

Authored by Rodrigo Souto
Committed by Antonio Terceiro
1 parent 2108a3c4

Not crashing when inviting a friend in the environment

* Granting that the attribute 'task_args' isn't nil before trying to
	  merge.

(ActionItem1411)
app/models/invitation.rb
... ... @@ -60,12 +60,14 @@ class Invitation < Task
60 60 {:person => person, :target => user.person}
61 61 end
62 62  
63   - if profile.person?
64   - InviteFriend.create(task_args)
65   - elsif profile.community?
66   - InviteMember.create(task_args.merge(:community_id => profile.id))
67   - else
68   - raise NotImplementedError, 'Don\'t know how to invite people to a %s' % profile.class.to_s
  63 + if !task_args.nil?
  64 + if profile.person?
  65 + InviteFriend.create(task_args)
  66 + elsif profile.community?
  67 + InviteMember.create(task_args.merge(:community_id => profile.id))
  68 + else
  69 + raise NotImplementedError, 'Don\'t know how to invite people to a %s' % profile.class.to_s
  70 + end
69 71 end
70 72 end
71 73 end
... ...
test/unit/invitation_test.rb
... ... @@ -59,4 +59,16 @@ class InvitationTest < ActiveSupport::TestCase
59 59 end
60 60 end
61 61  
  62 + should 'not crash if the invited friend is already your friend in the environment' do
  63 + person = create_user('person').person
  64 + invited_friend = create_user('invited_friend').person
  65 + community = fast_create(Community)
  66 +
  67 + invited_friend.add_friend(person)
  68 +
  69 + assert_nothing_raised NoMethodError do
  70 + Invitation.invite( person, [invited_friend.user.email], "", community )
  71 + end
  72 + end
  73 +
62 74 end
... ...