aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/factories.rb21
-rw-r--r--spec/models/info_request_spec.rb37
2 files changed, 57 insertions, 1 deletions
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