diff options
| author | Louise Crow <louise.crow@gmail.com> | 2014-06-06 11:24:50 +0100 | 
|---|---|---|
| committer | Louise Crow <louise.crow@gmail.com> | 2014-06-06 12:21:41 +0100 | 
| commit | b5e022d0fdb6aa3b5bc080092f3531bc86c66b4d (patch) | |
| tree | bc0bc4d16c89287038e7a8958084b078784bbeed | |
| parent | 6f415fca07b438e4d4ca84e7c2efdee62db8ce48 (diff) | |
Allow a message with more than one event to be destroyed.hotfix/0.18.0.2
Fixes #1569
| -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  | 
