diff options
Diffstat (limited to 'spec/services/users/refresh_authorized_projects_service_spec.rb')
-rw-r--r-- | spec/services/users/refresh_authorized_projects_service_spec.rb | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/spec/services/users/refresh_authorized_projects_service_spec.rb b/spec/services/users/refresh_authorized_projects_service_spec.rb index 1e74ff3d9eb..a8ad0d02f60 100644 --- a/spec/services/users/refresh_authorized_projects_service_spec.rb +++ b/spec/services/users/refresh_authorized_projects_service_spec.rb @@ -163,168 +163,4 @@ RSpec.describe Users::RefreshAuthorizedProjectsService do service.update_authorizations([], [[user.id, project.id, Gitlab::Access::MAINTAINER]]) end end - - describe '#fresh_access_levels_per_project' do - let(:hash) { service.fresh_access_levels_per_project } - - it 'returns a Hash' do - expect(hash).to be_an_instance_of(Hash) - end - - it 'sets the keys to the project IDs' do - expect(hash.keys).to eq([project.id]) - end - - it 'sets the values to the access levels' do - expect(hash.values).to eq([Gitlab::Access::MAINTAINER]) - end - - context 'personal projects' do - it 'includes the project with the right access level' do - expect(hash[project.id]).to eq(Gitlab::Access::MAINTAINER) - end - end - - context 'projects the user is a member of' do - let!(:other_project) { create(:project) } - - before do - other_project.team.add_reporter(user) - end - - it 'includes the project with the right access level' do - expect(hash[other_project.id]).to eq(Gitlab::Access::REPORTER) - end - end - - context 'projects of groups the user is a member of' do - let(:group) { create(:group) } - let!(:other_project) { create(:project, group: group) } - - before do - group.add_owner(user) - end - - it 'includes the project with the right access level' do - expect(hash[other_project.id]).to eq(Gitlab::Access::OWNER) - end - end - - context 'projects of subgroups of groups the user is a member of' do - let(:group) { create(:group) } - let(:nested_group) { create(:group, parent: group) } - let!(:other_project) { create(:project, group: nested_group) } - - before do - group.add_maintainer(user) - end - - it 'includes the project with the right access level' do - expect(hash[other_project.id]).to eq(Gitlab::Access::MAINTAINER) - end - end - - context 'projects shared with groups the user is a member of' do - let(:group) { create(:group) } - let(:other_project) { create(:project) } - let!(:project_group_link) { create(:project_group_link, project: other_project, group: group, group_access: Gitlab::Access::GUEST) } - - before do - group.add_maintainer(user) - end - - it 'includes the project with the right access level' do - expect(hash[other_project.id]).to eq(Gitlab::Access::GUEST) - end - end - - context 'projects shared with subgroups of groups the user is a member of' do - let(:group) { create(:group) } - let(:nested_group) { create(:group, parent: group) } - let(:other_project) { create(:project) } - let!(:project_group_link) { create(:project_group_link, project: other_project, group: nested_group, group_access: Gitlab::Access::DEVELOPER) } - - before do - group.add_maintainer(user) - end - - it 'includes the project with the right access level' do - expect(hash[other_project.id]).to eq(Gitlab::Access::DEVELOPER) - end - end - end - - describe '#current_authorizations_per_project' do - let(:hash) { service.current_authorizations_per_project } - - it 'returns a Hash' do - expect(hash).to be_an_instance_of(Hash) - end - - it 'sets the keys to the project IDs' do - expect(hash.keys).to eq([project.id]) - end - - it 'sets the values to the project authorization rows' do - expect(hash.values.length).to eq(1) - - value = hash.values[0] - - expect(value.project_id).to eq(project.id) - expect(value.access_level).to eq(Gitlab::Access::MAINTAINER) - end - end - - describe '#current_authorizations' do - context 'without authorizations' do - it 'returns an empty list' do - user.project_authorizations.delete_all - - expect(service.current_authorizations.empty?).to eq(true) - end - end - - context 'with an authorization' do - let(:row) { service.current_authorizations.take } - - it 'returns the currently authorized projects' do - expect(service.current_authorizations.length).to eq(1) - end - - it 'includes the project ID for every row' do - expect(row.project_id).to eq(project.id) - end - - it 'includes the access level for every row' do - expect(row.access_level).to eq(Gitlab::Access::MAINTAINER) - end - end - end - - describe '#fresh_authorizations' do - it 'returns the new authorized projects' do - expect(service.fresh_authorizations.length).to eq(1) - end - - it 'returns the highest access level' do - project.team.add_guest(user) - - rows = service.fresh_authorizations.to_a - - expect(rows.length).to eq(1) - expect(rows.first.access_level).to eq(Gitlab::Access::MAINTAINER) - end - - context 'every returned row' do - let(:row) { service.fresh_authorizations.take } - - it 'includes the project ID' do - expect(row.project_id).to eq(project.id) - end - - it 'includes the access level' do - expect(row.access_level).to eq(Gitlab::Access::MAINTAINER) - end - end - end end |