diff --git a/spec/controllers/posts_controller_spec.rb b/spec/controllers/posts_controller_spec.rb index aaeea2c45dd..a01847cd211 100644 --- a/spec/controllers/posts_controller_spec.rb +++ b/spec/controllers/posts_controller_spec.rb @@ -39,13 +39,20 @@ shared_examples 'finding and showing post' do end end +shared_examples 'action requires login' do |method, action, params| + it 'raises an exception when not logged in' do + lambda { xhr method, action, params }.should raise_error(Discourse::NotLoggedIn) + end +end + describe PostsController do describe 'short_link' do + let(:post) { Fabricate(:post) } + it 'logs the incoming link once' do IncomingLink.expects(:add).once.returns(true) - p = Fabricate(:post) - get :short_link, post_id: p.id, user_id: 999 + get :short_link, post_id: post.id, user_id: 999 response.should be_redirect end end @@ -89,9 +96,7 @@ describe PostsController do end describe 'delete a post' do - it 'raises an exception when not logged in' do - lambda { xhr :delete, :destroy, id: 123 }.should raise_error(Discourse::NotLoggedIn) - end + include_examples 'action requires login', :delete, :destroy, id: 123 describe 'when logged in' do @@ -125,9 +130,7 @@ describe PostsController do end describe 'recover a post' do - it 'raises an exception when not logged in' do - lambda { xhr :put, :recover, post_id: 123 }.should raise_error(Discourse::NotLoggedIn) - end + include_examples 'action requires login', :put, :recover, post_id: 123 describe 'when logged in' do @@ -154,9 +157,7 @@ describe PostsController do end describe 'destroy_many' do - it 'raises an exception when not logged in' do - lambda { xhr :delete, :destroy_many, post_ids: [123, 345] }.should raise_error(Discourse::NotLoggedIn) - end + include_examples 'action requires login', :delete, :destroy_many, post_ids: [123, 345] describe 'when logged in' do @@ -207,9 +208,7 @@ describe PostsController do describe 'edit a post' do - it 'raises an exception when not logged in' do - lambda { xhr :put, :update, id: 2 }.should raise_error(Discourse::NotLoggedIn) - end + include_examples 'action requires login', :put, :update, id: 2 describe 'when logged in' do @@ -271,9 +270,7 @@ describe PostsController do describe 'bookmark a post' do - it 'raises an exception when not logged in' do - lambda { xhr :put, :bookmark, post_id: 2 }.should raise_error(Discourse::NotLoggedIn) - end + include_examples 'action requires login', :put, :bookmark, post_id: 2 describe 'when logged in' do @@ -301,9 +298,7 @@ describe PostsController do describe 'creating a post' do - it 'raises an exception when not logged in' do - lambda { xhr :post, :create }.should raise_error(Discourse::NotLoggedIn) - end + include_examples 'action requires login', :post, :create describe 'when logged in' do