refactored comments_controller tests; fixed access to Administration link into user_menu view

This commit is contained in:
raluka 2015-09-15 12:39:36 +02:00
parent a9a43d726f
commit 37339dccc1
4 changed files with 19 additions and 42 deletions

View file

@ -2,16 +2,19 @@ require 'spec_helper'
describe Admin::CommentsController, type: :controller do
# It is necessary to use bang version of let to build roles before user
let(:conference) { create(:conference) }
let!(:first_user) { create(:user) }
let!(:organizer_role) { create(:role, name: 'organizer', resource: conference) }
let(:organizer) { create(:user, role_ids: organizer_role.id, last_sign_in_at: Time.now - 1.day) }
let(:participant) { create(:user) }
let(:event) { create(:event, conference: conference) }
let(:comment) { create(:comment, commentable_type: 'Event', commentable_id: event.id) }
context 'not logged in user' do
describe 'GET #index' do
it 'renders the :index template' do
conference = create(:conference)
first_user = create(:user)
organizer_role = create(:role, name: 'organizer', resource: conference)
organizer = create(:user, role_ids: organizer_role.id)
event = create(:event, conference: conference)
comment = create(:comment, commentable_type: 'Event', commentable_id: event.id)
comment
get :index
expect(response).to redirect_to(user_session_path)
end
@ -19,16 +22,12 @@ describe Admin::CommentsController, type: :controller do
end
context 'logged in as admin, organizer or cfp' do
before :each do
sign_in(organizer)
end
describe 'GET #index' do
it 'populates a hash with comments' do
conference = create(:conference)
first_user = create(:user)
organizer_role = create(:role, name: 'organizer', resource: conference)
organizer = create(:user, role_ids: organizer_role.id)
event = create(:event, conference: conference)
comment = create(:comment, commentable_type: 'Event', commentable_id: event.id)
sign_in(organizer)
comment
get :index
expect(assigns(:comments)).to be_a(Hash)
# assigns(:comments).first returns an array of first pair key-value from hash.
@ -36,26 +35,12 @@ describe Admin::CommentsController, type: :controller do
expect(assigns(:comments).first.first.title).to eq(comment.commentable.conference.title)
end
it 'has status 200: OK' do
conference = create(:conference)
first_user = create(:user)
organizer_role = create(:role, name: 'organizer', resource: conference)
organizer = create(:user, role_ids: organizer_role.id)
event = create(:event, conference: conference)
comment = create(:comment, commentable_type: 'Event', commentable_id: event.id)
sign_in(organizer)
comment
get :index
expect(response).to have_http_status(:ok)
end
it 'renders the :index template' do
conference = create(:conference)
first_user = create(:user)
organizer_role = create(:role, name: 'organizer', resource: conference)
organizer = create(:user, role_ids: organizer_role.id)
event = create(:event, conference: conference)
comment = create(:comment, commentable_type: 'Event', commentable_id: event.id)
sign_in(organizer)
comment
get :index
expect(response).to render_template(:index)
end
@ -65,13 +50,8 @@ describe Admin::CommentsController, type: :controller do
context 'logged in with any other role or normal user' do
describe 'GET#index' do
it 'requires organizer privileges' do
conference = create(:conference)
first_user = create(:user)
participant = create(:user)
event = create(:event, conference: conference)
comment = create(:comment, commentable_type: 'Event', commentable_id: event.id)
sign_in(participant)
comment
get :index
expect(response).to redirect_to(root_path)
expect(flash[:alert]).to match('You are not authorized to access this area!')

View file

@ -6,7 +6,6 @@ FactoryGirl.define do
sequence(:username) { |n| "username#{n}" }
password 'changeme'
password_confirmation 'changeme'
last_sign_in_at { Time.now - 10.days }
confirmed_at { Time.now }
biography <<-EOS
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus enim