diff options
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r-- | spec/models/user_spec.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 3286a891203..bbd45afadd7 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -4360,4 +4360,24 @@ describe User, :do_not_mock_admin_mode do it { is_expected.to be expected_result } end end + + describe '#current_highest_access_level' do + let_it_be(:user) { create(:user) } + + context 'when no memberships exist' do + it 'returns nil' do + expect(user.current_highest_access_level).to be_nil + end + end + + context 'when memberships exist' do + it 'returns the highest access level for non requested memberships' do + create(:group_member, :reporter, user_id: user.id) + create(:project_member, :guest, user_id: user.id) + create(:project_member, :maintainer, user_id: user.id, requested_at: Time.current) + + expect(user.current_highest_access_level).to eq(Gitlab::Access::REPORTER) + end + end + end end |