debian-mirror-gitlab/spec/controllers/users_controller_spec.rb

137 lines
3.5 KiB
Ruby
Raw Normal View History

2015-04-26 12:48:37 +05:30
require 'spec_helper'
describe UsersController do
2015-09-11 14:41:01 +05:30
let(:user) { create(:user) }
2015-04-26 12:48:37 +05:30
describe 'GET #show' do
2015-09-11 14:41:01 +05:30
it 'is case-insensitive' do
user = create(:user, username: 'CamelCaseUser')
sign_in(user)
get :show, username: user.username.downcase
2015-04-26 12:48:37 +05:30
2015-09-11 14:41:01 +05:30
expect(response).to be_success
end
context 'with rendered views' do
render_views
2015-11-26 14:37:03 +05:30
describe 'when logged in' do
before do
sign_in(user)
end
2015-09-11 14:41:01 +05:30
2015-11-26 14:37:03 +05:30
it 'renders the show template' do
get :show, username: user.username
2015-09-11 14:41:01 +05:30
2015-11-26 14:37:03 +05:30
expect(response).to be_success
expect(response).to render_template('show')
end
end
describe 'when logged out' do
it 'renders the show template' do
get :show, username: user.username
2016-08-24 12:49:21 +05:30
expect(response).to have_http_status(200)
2016-06-02 11:05:42 +05:30
expect(response).to render_template('show')
end
end
end
context 'when public visibility level is restricted' do
before do
stub_application_setting(restricted_visibility_levels: [Gitlab::VisibilityLevel::PUBLIC])
end
context 'when logged out' do
it 'renders 404' do
get :show, username: user.username
2016-08-24 12:49:21 +05:30
expect(response).to have_http_status(404)
2016-06-02 11:05:42 +05:30
end
end
context 'when logged in' do
before { sign_in(user) }
it 'renders show' do
get :show, username: user.username
2016-08-24 12:49:21 +05:30
expect(response).to have_http_status(200)
2015-11-26 14:37:03 +05:30
expect(response).to render_template('show')
end
2015-09-11 14:41:01 +05:30
end
2015-04-26 12:48:37 +05:30
end
end
describe 'GET #calendar' do
it 'renders calendar' do
2015-09-11 14:41:01 +05:30
sign_in(user)
2015-04-26 12:48:37 +05:30
get :calendar, username: user.username
2015-09-11 14:41:01 +05:30
2015-04-26 12:48:37 +05:30
expect(response).to render_template('calendar')
end
2016-06-02 11:05:42 +05:30
context 'forked project' do
2016-10-01 15:18:49 +05:30
let(:project) { create(:project) }
let(:forked_project) { Projects::ForkService.new(project, user).execute }
2016-06-02 11:05:42 +05:30
before do
sign_in(user)
project.team << [user, :developer]
EventCreateService.new.push(project, user, [])
EventCreateService.new.push(forked_project, user, [])
end
it 'includes forked projects' do
get :calendar, username: user.username
expect(assigns(:contributions_calendar).projects.count).to eq(2)
end
end
2015-04-26 12:48:37 +05:30
end
describe 'GET #calendar_activities' do
let!(:project) { create(:project) }
let!(:user) { create(:user) }
before do
allow_any_instance_of(User).to receive(:contributed_projects_ids).and_return([project.id])
2015-09-11 14:41:01 +05:30
sign_in(user)
2015-04-26 12:48:37 +05:30
project.team << [user, :developer]
end
it 'assigns @calendar_date' do
get :calendar_activities, username: user.username, date: '2014-07-31'
expect(assigns(:calendar_date)).to eq(Date.parse('2014-07-31'))
end
it 'renders calendar_activities' do
get :calendar_activities, username: user.username
expect(response).to render_template('calendar_activities')
end
end
2016-06-02 11:05:42 +05:30
describe 'GET #snippets' do
before do
sign_in(user)
end
context 'format html' do
it 'renders snippets page' do
get :snippets, username: user.username
2016-08-24 12:49:21 +05:30
expect(response).to have_http_status(200)
2016-06-02 11:05:42 +05:30
expect(response).to render_template('show')
end
end
context 'format json' do
it 'response with snippets json data' do
get :snippets, username: user.username, format: :json
2016-08-24 12:49:21 +05:30
expect(response).to have_http_status(200)
2016-06-02 11:05:42 +05:30
expect(JSON.parse(response.body)).to have_key('html')
end
end
end
2015-04-26 12:48:37 +05:30
end