diff options
-rw-r--r-- | app/models/info_request.rb | 2 | ||||
-rw-r--r-- | spec/factories.rb | 21 | ||||
-rw-r--r-- | spec/models/info_request_spec.rb | 37 |
3 files changed, 59 insertions, 1 deletions
diff --git a/app/models/info_request.rb b/app/models/info_request.rb index 847a57ef4..e9deb7b05 100644 --- a/app/models/info_request.rb +++ b/app/models/info_request.rb @@ -1005,6 +1005,8 @@ public end incoming_message.safe_mail_from + next if ! incoming_message.all_can_view? + email = OutgoingMailer.email_for_followup(self, incoming_message) name = OutgoingMailer.name_for_followup(self, incoming_message) diff --git a/spec/factories.rb b/spec/factories.rb index 9df1b41d2..9ddb68c90 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -21,12 +21,24 @@ FactoryGirl.define do raw_email last_parsed { 1.week.ago } sent_at { 1.week.ago } - mail_from 'A Public Body' + after(:create) do |incoming_message, evaluator| FactoryGirl.create(:body_text, incoming_message: incoming_message, url_part_number: 1) end + + factory :plain_incoming_message do + last_parsed { nil } + sent_at { nil } + after(:create) do |incoming_message, evaluator| + data = load_file_fixture('incoming-request-plain.email') + data.gsub!('EMAIL_FROM', 'Bob Responder <bob@example.com>') + incoming_message.raw_email.data = data + incoming_message.raw_email.save! + end + end + factory :incoming_message_with_attachments do # foi_attachments_count is declared as an ignored attribute and available in # attributes on the factory, as well as the callback via the evaluator @@ -78,6 +90,13 @@ FactoryGirl.define do end end + factory :info_request_with_plain_incoming do + after(:create) do |info_request, evaluator| + incoming_message = FactoryGirl.create(:plain_incoming_message, info_request: info_request) + info_request.log_event("response", {:incoming_message_id => incoming_message.id}) + end + end + factory :info_request_with_incoming_attachments do after(:create) do |info_request, evaluator| incoming_message = FactoryGirl.create(:incoming_message_with_attachments, info_request: info_request) diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb index a6f877b20..e03bf6856 100644 --- a/spec/models/info_request_spec.rb +++ b/spec/models/info_request_spec.rb @@ -648,6 +648,43 @@ describe InfoRequest do end + describe 'when asked who can be sent a followup' do + + before do + @info_request = FactoryGirl.create(:info_request_with_plain_incoming) + @incoming_message = @info_request.incoming_messages.first + @public_body = @info_request.public_body + end + + it 'should not include details from a hidden prominence response' do + @incoming_message.prominence = 'hidden' + @incoming_message.save! + @info_request.who_can_followup_to.should == [[@public_body.name, + @public_body.request_email, + nil]] + end + + it 'should not include details from a requester_only prominence response' do + @incoming_message.prominence = 'requester_only' + @incoming_message.save! + @info_request.who_can_followup_to.should == [[@public_body.name, + @public_body.request_email, + nil]] + end + + it 'should include details from a normal prominence response' do + @incoming_message.prominence = 'normal' + @incoming_message.save! + @info_request.who_can_followup_to.should == [[@public_body.name, + @public_body.request_email, + nil], + ['Bob Responder', + "bob@example.com", + @incoming_message.id]] + end + + end + describe 'when generating json for the api' do before do |