aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/info_request.rb2
-rw-r--r--spec/factories.rb21
-rw-r--r--spec/models/info_request_spec.rb37
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