aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/info_request_batch.rb5
-rw-r--r--db/migrate/20131127135622_add_sent_at_to_info_request_batch.rb5
-rw-r--r--spec/models/info_request_batch_spec.rb47
3 files changed, 43 insertions, 14 deletions
diff --git a/app/models/info_request_batch.rb b/app/models/info_request_batch.rb
index 745cfe7d2..7e7390736 100644
--- a/app/models/info_request_batch.rb
+++ b/app/models/info_request_batch.rb
@@ -42,9 +42,12 @@ class InfoRequestBatch < ActiveRecord::Base
unrequestable << public_body
end
end
+ self.sent_at = Time.now
+ self.save!
end
created.each{ |info_request| info_request.outgoing_messages.first.send_message }
- return {:unrequestable => unrequestable}
+
+ return unrequestable
end
# Create and send an FOI request to a public body
diff --git a/db/migrate/20131127135622_add_sent_at_to_info_request_batch.rb b/db/migrate/20131127135622_add_sent_at_to_info_request_batch.rb
new file mode 100644
index 000000000..27d4aecee
--- /dev/null
+++ b/db/migrate/20131127135622_add_sent_at_to_info_request_batch.rb
@@ -0,0 +1,5 @@
+class AddSentAtToInfoRequestBatch < ActiveRecord::Migration
+ def change
+ add_column :info_request_batches, :sent_at, :datetime
+ end
+end
diff --git a/spec/models/info_request_batch_spec.rb b/spec/models/info_request_batch_spec.rb
index 2323c3bd3..8914da3fa 100644
--- a/spec/models/info_request_batch_spec.rb
+++ b/spec/models/info_request_batch_spec.rb
@@ -69,21 +69,42 @@ end
describe InfoRequestBatch, "when creating a batch", :focus => true do
+ before do
+ @title = 'A test title'
+ @body = "Dear [Authority name],\nA message\nYours faithfully,\nRequester"
+ @first_public_body = FactoryGirl.create(:public_body)
+ @second_public_body = FactoryGirl.create(:public_body)
+ @user = FactoryGirl.create(:user)
+ @info_request_batch = InfoRequestBatch.create!({:title => @title,
+ :body => @body,
+ :public_bodies => [@first_public_body,
+ @second_public_body],
+ :user => @user})
+ end
+
it 'should substitute authority name for the placeholder in each request' do
- body = "Dear [Authority name],\nA message\nYours faithfully,\nRequester"
- first_public_body = FactoryGirl.create(:public_body)
- second_public_body = FactoryGirl.create(:public_body)
- user = FactoryGirl.create(:user)
- info_request_batch = InfoRequestBatch.create!({:title => 'A test title',
- :body => body,
- :public_bodies => [first_public_body,
- second_public_body],
- :user => user})
- results = info_request_batch.create_batch!
- [first_public_body, second_public_body].each do |public_body|
- request = info_request_batch.info_requests.detect{|info_request| info_request.public_body == public_body}
- request.outgoing_messages.first.body.should == "Dear #{public_body.name},\nA message\nYours faithfully,\nRequester"
+ unrequestable = @info_request_batch.create_batch!
+ [@first_public_body, @second_public_body].each do |public_body|
+ request = @info_request_batch.info_requests.detect do |info_request|
+ info_request.public_body == public_body
+ end
+ expected = "Dear #{public_body.name},\nA message\nYours faithfully,\nRequester"
+ request.outgoing_messages.first.body.should == expected
end
end
+ it 'should send requests to requestable public bodies, and return a list of unrequestable ones' do
+ @first_public_body.stub(:is_requestable?).and_return(false)
+ unrequestable = @info_request_batch.create_batch!
+ unrequestable.should == [@first_public_body]
+ @info_request_batch.info_requests.size.should == 1
+ request = @info_request_batch.info_requests.first
+ request.outgoing_messages.first.status.should == 'sent'
+ end
+
+ it 'should set the sent_at value of the info request batch' do
+ @info_request_batch.create_batch!
+ @info_request_batch.sent_at.should_not be_nil
+ end
+
end