diff options
Diffstat (limited to 'spec/models/concerns/has_user_type_spec.rb')
-rw-r--r-- | spec/models/concerns/has_user_type_spec.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/models/concerns/has_user_type_spec.rb b/spec/models/concerns/has_user_type_spec.rb index a6a0e074589..b2ea7b22dea 100644 --- a/spec/models/concerns/has_user_type_spec.rb +++ b/spec/models/concerns/has_user_type_spec.rb @@ -88,5 +88,47 @@ RSpec.describe User do end end end + + describe '#redacted_name(viewing_user)' do + let_it_be(:viewing_user) { human } + + subject { observed_user.redacted_name(viewing_user) } + + context 'when user is not a project bot' do + let(:observed_user) { support_bot } + + it { is_expected.to eq(support_bot.name) } + end + + context 'when user is a project_bot' do + let(:observed_user) { project_bot } + + context 'when groups are present and user can :read_group' do + let_it_be(:group) { create(:group) } + + before do + group.add_developer(observed_user) + group.add_developer(viewing_user) + end + + it { is_expected.to eq(observed_user.name) } + end + + context 'when user can :read_project' do + let_it_be(:project) { create(:project) } + + before do + project.add_developer(observed_user) + project.add_developer(viewing_user) + end + + it { is_expected.to eq(observed_user.name) } + end + + context 'when requester does not have permissions to read project_bot name' do + it { is_expected.to eq('****') } + end + end + end end end |