aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/admin_general_controller_spec.rb45
-rw-r--r--spec/controllers/api_controller_spec.rb15
-rw-r--r--spec/controllers/request_controller_spec.rb14
3 files changed, 60 insertions, 14 deletions
diff --git a/spec/controllers/admin_general_controller_spec.rb b/spec/controllers/admin_general_controller_spec.rb
index 820d1e7f3..dc1eb0d97 100644
--- a/spec/controllers/admin_general_controller_spec.rb
+++ b/spec/controllers/admin_general_controller_spec.rb
@@ -1,18 +1,39 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
-describe AdminGeneralController, "when viewing front page of admin interface" do
- integrate_views
- before { basic_auth_login @request }
-
- it "should render the front page" do
- get :index, :suppress_redirect => 1
- response.should render_template('index')
- end
+describe AdminGeneralController do
+
+ describe "when viewing front page of admin interface" do
+
+ integrate_views
+ before { basic_auth_login @request }
+
+ it "should render the front page" do
+ get :index, :suppress_redirect => 1
+ response.should render_template('index')
+ end
+
+ it "should redirect to include trailing slash" do
+ get :index
+ response.should redirect_to(:controller => 'admin_general',
+ :action => 'index')
+ end
- it "should redirect to include trailing slash" do
- get :index
- response.should redirect_to(:controller => 'admin_general',
- :action => 'index')
end
+ describe 'when viewing the timeline' do
+
+ it 'should assign an array of events in order of descending date to the view' do
+ get :timeline, :all => 1
+ previous_event = nil
+ previous_event_at = nil
+ assigns[:events].each do |event, event_at|
+ if previous_event
+ (event_at <= previous_event_at).should be_true
+ end
+ previous_event = event
+ previous_event_at = event_at
+ end
+ end
+
+ end
end
diff --git a/spec/controllers/api_controller_spec.rb b/spec/controllers/api_controller_spec.rb
index 925b7adb4..ded9a040a 100644
--- a/spec/controllers/api_controller_spec.rb
+++ b/spec/controllers/api_controller_spec.rb
@@ -320,6 +320,21 @@ describe ApiController, "when using the API" do
assigns[:event_data].should == [first_event]
end
+ it "should honour the since_date parameter for the Atom feed" do
+ get :body_request_events,
+ :id => public_bodies(:humpadink_public_body).id,
+ :k => public_bodies(:humpadink_public_body).api_key,
+ :since_date => "2010-01-01",
+ :feed_type => "atom"
+
+ response.should be_success
+ response.should render_template("api/request_events.atom")
+ assigns[:events].size.should > 0
+ assigns[:events].each do |event|
+ event.created_at.should >= Date.new(2010, 1, 1)
+ end
+ end
+
it "should return a JSON 404 error for non-existent requests" do
request_id = 123459876 # Let's hope this doesn't exist!
sent_at = "2012-05-28T12:35:39+01:00"
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index b8425613c..95737a250 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -1275,7 +1275,8 @@ describe RequestController, "when classifying an information request" do
expected_params = {:user_id => users(:silly_name_user).id,
:old_described_state => 'waiting_response',
:described_state => 'rejected'}
- @dog_request.should_receive(:log_event).with("status_update", expected_params)
+ event = mock_model(InfoRequestEvent)
+ @dog_request.should_receive(:log_event).with("status_update", expected_params).and_return(event)
post_status('rejected')
end
@@ -1314,10 +1315,19 @@ describe RequestController, "when classifying an information request" do
end
it 'should log a status update event' do
+ event = mock_model(InfoRequestEvent)
expected_params = {:user_id => @admin_user.id,
:old_described_state => 'waiting_response',
:described_state => 'rejected'}
- @dog_request.should_receive(:log_event).with("status_update", expected_params)
+ @dog_request.should_receive(:log_event).with("status_update", expected_params).and_return(event)
+ post_status('rejected')
+ end
+
+ it 'should record a classification' do
+ event = mock_model(InfoRequestEvent)
+ @dog_request.stub!(:log_event).with("status_update", anything()).and_return(event)
+ RequestClassification.should_receive(:create!).with(:user_id => @admin_user.id,
+ :info_request_event_id => event.id)
post_status('rejected')
end