diff options
-rw-r--r-- | app/models/info_request_batch.rb | 5 | ||||
-rw-r--r-- | db/migrate/20131127135622_add_sent_at_to_info_request_batch.rb | 5 | ||||
-rw-r--r-- | spec/models/info_request_batch_spec.rb | 47 |
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 |