aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/comment_controller_spec.rb11
-rw-r--r--spec/controllers/request_controller_spec.rb16
-rw-r--r--spec/fixtures/info_requests.yml11
3 files changed, 37 insertions, 1 deletions
diff --git a/spec/controllers/comment_controller_spec.rb b/spec/controllers/comment_controller_spec.rb
index b71bc0aea..4a7acee23 100644
--- a/spec/controllers/comment_controller_spec.rb
+++ b/spec/controllers/comment_controller_spec.rb
@@ -53,6 +53,17 @@ describe CommentController, "when commenting on a request" do
response.should render_template('new')
end
+
+ it "should not allow comments if comments are not allowed" do
+ session[:user_id] = users(:silly_name_user).id
+
+ expect {
+ post :new, :url_title => info_requests(:spam_1_request).url_title,
+ :comment => { :body => "I demand to be heard!" },
+ :type => 'request', :submitted_comment => 1, :preview => 0
+ }.to raise_error("Comments are not allowed on this request")
+
+ end
describe 'when commenting on an external request' do
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index 95737a250..77f43b618 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -238,6 +238,22 @@ describe RequestController, "when showing one request" do
response.should have_tag('div#owner_actions')
end
+ describe 'when the request does allow comments' do
+ it 'should have a comment link' do
+ get :show, { :url_title => 'why_do_you_have_such_a_fancy_dog' },
+ { :user_id => users(:admin_user).id }
+ response.should have_tag('#anyone_actions', /Add an annotation/)
+ end
+ end
+
+ describe 'when the request does not allow comments' do
+ it 'should not have a comment link' do
+ get :show, { :url_title => 'spam_1' },
+ { :user_id => users(:admin_user).id }
+ response.should_not have_tag('#anyone_actions', /Add an annotation/)
+ end
+ end
+
describe 'when the request is being viewed by an admin' do
describe 'if the request is awaiting description' do
diff --git a/spec/fixtures/info_requests.yml b/spec/fixtures/info_requests.yml
index 079a44cd0..9361ec486 100644
--- a/spec/fixtures/info_requests.yml
+++ b/spec/fixtures/info_requests.yml
@@ -8,6 +8,7 @@ fancy_dog_request:
user_id: 1
described_state: waiting_response
awaiting_description: true
+ comments_allowed: true
idhash: 50929748
naughty_chicken_request:
id: 103
@@ -19,6 +20,7 @@ naughty_chicken_request:
user_id: 1
described_state: waiting_response
awaiting_description: false
+ comments_allowed: true
idhash: e8d18c84
badger_request:
id: 104
@@ -30,6 +32,7 @@ badger_request:
user_id: 1
described_state: waiting_response
awaiting_description: false
+ comments_allowed: true
idhash: e8d18c84
boring_request:
id: 105
@@ -41,6 +44,7 @@ boring_request:
user_id: 1
described_state: successful
awaiting_description: false
+ comments_allowed: true
idhash: 173fd003
another_boring_request:
id: 106
@@ -52,6 +56,7 @@ another_boring_request:
user_id: 1
described_state: successful
awaiting_description: false
+ comments_allowed: true
idhash: 173fd004
# A pair of identical requests (with url_title differing only in the numeric suffix)
@@ -66,6 +71,7 @@ spam_1_request:
user_id: 5
described_state: successful
awaiting_description: false
+ comments_allowed: false
idhash: 173fd005
spam_2_request:
id: 108
@@ -77,6 +83,7 @@ spam_2_request:
user_id: 5
described_state: successful
awaiting_description: false
+ comments_allowed: true
idhash: 173fd005
external_request:
id: 109
@@ -87,6 +94,7 @@ external_request:
public_body_id: 2
described_state: waiting_response
awaiting_description: false
+ comments_allowed: true
idhash: a1234567
anonymous_external_request:
id: 110
@@ -97,4 +105,5 @@ anonymous_external_request:
public_body_id: 2
described_state: waiting_response
awaiting_description: false
- idhash: 7654321a \ No newline at end of file
+ comments_allowed: true
+ idhash: 7654321a