Skip to content

Commit

Permalink
Merge pull request #3121 from bgeuken/user_and_roles_test
Browse files Browse the repository at this point in the history
User and roles test
  • Loading branch information
bgeuken committed May 18, 2017
2 parents 9242a7b + ea88557 commit cb741be
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 4 deletions.
6 changes: 3 additions & 3 deletions src/api/app/helpers/webui/webui_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -253,10 +253,10 @@ def user_and_role(user, role = nil, options = {})
icon = user_icon(user)
end

if !(real_name.empty? || opt[:short])
printed_name = "#{real_name} (#{user})"
else
if real_name.empty? || opt[:short]
printed_name = user
else
printed_name = "#{real_name} (#{user})"
end

printed_name << " as #{role}" if role
Expand Down
4 changes: 4 additions & 0 deletions src/api/spec/factories/users.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@
state 4
end

factory :user_nobody do
login '_nobody_'
end

# This is needed because the salt is random
# in User.after_validation
after(:create) do |user|
Expand Down
47 changes: 46 additions & 1 deletion src/api/spec/helpers/webui/webui_helper_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,52 @@
end

describe '#user_and_role' do
skip('Please add some tests')
let(:user) { create(:user) }
let(:logged_in_user) { create(:user) }
let(:anonymous_user) { create(:user_nobody) }

context 'for logged in users' do
before do
User.current = logged_in_user
end

it 'displays the users realname to a user that is logged in' do
expect(user_and_role(user.login)).to include(link_to("#{user.realname} (#{user.login})", user_show_path(user: user)))
end

it 'falls back to users login if realname is empty' do
user.update_attributes(realname: '')
expect(user_and_role(user.login)).to include(link_to(user.login, user_show_path(user: user)))
end

it 'does not show an icon if option disables it' do
expect(user_and_role(user.login, nil, no_icon: true)).to eq(
link_to("#{user.realname} (#{user.login})", user_show_path(user: user))
)
end

it 'only shows user login if short option is set' do
expect(user_and_role(user.login, nil, short: true)).to include(link_to(user.login, user_show_path(user: user)))
end

it 'appends a role name' do
expect(user_and_role(user.login, 'test')).to include(
link_to("#{user.realname} (#{user.login}) as test", user_show_path(user: user)))
end
end

context 'for users that are not logged in' do
before do
User.current = anonymous_user
end

it 'does not link to user profiles' do
expect(user_and_role(user.login)).to eq(
"<img width=\"20\" height=\"20\" alt=\"#{user.realname}\" " + \
"src=\"/user/icon/#{user.login}?size=20\" />#{user.realname} (#{user.login})"
)
end
end
end

describe '#project_or_package_link' do
Expand Down

0 comments on commit cb741be

Please sign in to comment.