diff options
-rw-r--r-- | app/models/incoming_message.rb | 15 | ||||
-rw-r--r-- | spec/models/incoming_message_spec.rb | 18 |
2 files changed, 26 insertions, 7 deletions
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb index 6db145348..124db8d4a 100644 --- a/app/models/incoming_message.rb +++ b/app/models/incoming_message.rb @@ -834,14 +834,15 @@ class IncomingMessage < ActiveRecord::Base def fully_destroy ActiveRecord::Base.transaction do - for o in self.outgoing_message_followups - o.incoming_message_followup = nil - o.save! + outgoing_message_followups.each do |outgoing_message_followup| + outgoing_message_followup.incoming_message_followup = nil + outgoing_message_followup.save! + end + info_request_events.each do |info_request_event| + info_request_event.track_things_sent_emails.each { |a| a.destroy } + info_request_event.user_info_request_sent_alerts.each { |a| a.destroy } + info_request_event.destroy end - info_request_event = InfoRequestEvent.find_by_incoming_message_id(self.id) - info_request_event.track_things_sent_emails.each { |a| a.destroy } - info_request_event.user_info_request_sent_alerts.each { |a| a.destroy } - info_request_event.destroy self.raw_email.destroy_file_representation! self.destroy end diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb index f06dcbeeb..3b6887f76 100644 --- a/spec/models/incoming_message_spec.rb +++ b/spec/models/incoming_message_spec.rb @@ -112,6 +112,24 @@ describe IncomingMessage, 'when asked if a user can view it' do end +describe 'when destroying a message' do + + before do + @incoming_message = FactoryGirl.create(:plain_incoming_message) + end + + it 'can destroy a message with more than one info request event' do + @info_request = @incoming_message.info_request + @info_request.log_event('response', + :incoming_message_id => @incoming_message.id) + @info_request.log_event('edit_incoming', + :incoming_message_id => @incoming_message.id) + @incoming_message.fully_destroy + IncomingMessage.where(:id => @incoming_message.id).should be_empty + end + +end + describe 'when asked if it is indexed by search' do before do |