add some home controller specs
This commit is contained in:
parent
87802c8ba1
commit
0034250f33
|
@ -0,0 +1,98 @@
|
|||
require 'spec_helper'
|
||||
|
||||
# shared_examples_for 'able search' do
|
||||
# it 'should be able to search' do
|
||||
# get :index
|
||||
# expect(response).to be_success
|
||||
# expect(response).to render_template(:index)
|
||||
# end
|
||||
# end
|
||||
# shared_examples_for 'not able search' do
|
||||
# it 'should not be able to search' do
|
||||
# get :index
|
||||
# expect(response).to redirect_to(controller.current_user ? forbidden_path : new_user_session_path)
|
||||
# end
|
||||
# end
|
||||
|
||||
describe HomeController, type: :controller do
|
||||
before { stub_symlink_methods }
|
||||
|
||||
context 'as guest' do
|
||||
%i(activity own_activity issues pull_requests).each do |action|
|
||||
it "should redirect to new session page from #{action} action" do
|
||||
get action
|
||||
expect(response).to redirect_to(new_user_session_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'as user' do
|
||||
before do
|
||||
@user = FactoryGirl.create(:user)
|
||||
set_session_for @user
|
||||
end
|
||||
|
||||
%i(activity own_activity issues pull_requests).each do |action|
|
||||
it "should able to get #{action}" do
|
||||
get action
|
||||
expect(response).to be_success
|
||||
end
|
||||
end
|
||||
|
||||
context 'check activity feed' do
|
||||
before do
|
||||
@issue = FactoryGirl.create(:issue)
|
||||
@user_comment = FactoryGirl.create(:comment, user: @user, commentable: @issue)
|
||||
@comment = FactoryGirl.create(:comment, commentable: @issue)
|
||||
end
|
||||
|
||||
it 'activity page should contain only another user action' do
|
||||
get :activity
|
||||
expect(assigns(:activity_feeds).where(creator_id: @user).exists?).to be_falsy
|
||||
end
|
||||
|
||||
it 'activity page should contain record about comment' do
|
||||
get :activity
|
||||
expect(
|
||||
assigns(:activity_feeds)
|
||||
.where(kind: 'new_comment_notification', creator_id: @comment.user).first
|
||||
.data[:comment_id] == @comment.id
|
||||
).to be_truthy
|
||||
end
|
||||
|
||||
it 'activity page should not contain record about own comment' do
|
||||
get :activity
|
||||
expect(
|
||||
assigns(:activity_feeds)
|
||||
.where(kind: 'new_comment_notification', creator_id: @user).exists?
|
||||
).to be_falsy
|
||||
end
|
||||
|
||||
it 'activity page should contain only elements for current user' do
|
||||
get :activity
|
||||
expect(assigns(:activity_feeds).where.not(user_id: @user).exists?).to be_falsy
|
||||
end
|
||||
|
||||
it 'own activity page should contain only current user action' do
|
||||
get :own_activity
|
||||
expect(assigns(:activity_feeds).where.not(creator_id: @user).exists?).to be_falsy
|
||||
end
|
||||
|
||||
it "own activity page should not contain record about another user's comment" do
|
||||
get :own_activity
|
||||
expect(
|
||||
assigns(:activity_feeds)
|
||||
.where(kind: 'new_comment_notification', creator_id: @comment.user).exists?
|
||||
).to be_falsy
|
||||
end
|
||||
|
||||
it 'own activity page should contain record about own comment' do
|
||||
get :own_activity
|
||||
expect(
|
||||
assigns(:activity_feeds)
|
||||
.where(kind: 'new_comment_notification', creator_id: @user).exists?
|
||||
).to be_truthy
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue