From 1761e6e43101676fe34f9e7f1138fb446e177044 Mon Sep 17 00:00:00 2001 From: Junior Silva Date: Wed, 2 Apr 2014 17:02:20 -0300 Subject: [PATCH] invite-member: fixed inviteMember crash when community is destroyed AI3054 --- app/models/community.rb | 6 ++++++ test/unit/invite_member_test.rb | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/models/community.rb b/app/models/community.rb index 53671ec..60cf2c6 100644 --- a/app/models/community.rb +++ b/app/models/community.rb @@ -1,5 +1,7 @@ class Community < Organization + after_destroy :check_invite_member_for_destroy + def self.type_name _('Community') end @@ -17,6 +19,10 @@ class Community < Organization community.moderated_articles = true if community.environment.enabled?('organizations_are_moderated_by_default') end + def check_invite_member_for_destroy + InviteMember.pending.select { |task| task.community_id == self.id }.map(&:destroy) + end + def self.create_after_moderation(requestor, attributes = {}) community = Community.new(attributes) if community.environment.enabled?('admin_must_approve_new_communities') diff --git a/test/unit/invite_member_test.rb b/test/unit/invite_member_test.rb index e0165c0..365b25e 100644 --- a/test/unit/invite_member_test.rb +++ b/test/unit/invite_member_test.rb @@ -118,13 +118,16 @@ class InviteMemberTest < ActiveSupport::TestCase should 'destroy InviteMember task when the community is destroyed' do p1 = create_user('testuser1').person p2 = create_user('testuser2').person + p3 = create_user('testuser3').person community = fast_create(Community) - task = InviteMember.create!(:person => p1, :friend => p2, :friend_email => 'test@test.com', :community_id => community.id) + t1 = InviteMember.create!(:person => p1, :friend => p2, :community_id => community.id) + t2 = InviteMember.create!(:person => p1, :friend => p3, :community_id => community.id) community.destroy - assert_nil task.reload - end + assert_raise ActiveRecord::RecordNotFound do; t1.reload; end + assert_raise ActiveRecord::RecordNotFound do; t2.reload; end + end end -- libgit2 0.21.2