Skip to content
Snippets Groups Projects
Commit fed059a1 authored by Yorick Peterse's avatar Yorick Peterse
Browse files

Port GitLab EE ProjectsFinder changes

These changes were added in GitLab EE commit
d39de0ea. The tests were a bit bugged
(they used a non existing group, thus not testing a crucial part) which
I only noticed when porting CE changes to EE.
parent ba4dc176
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -23,17 +23,17 @@ class ProjectsFinder
group = options[:group]
 
if group
base, extra = group_projects(current_user, group)
segments = group_projects(current_user, group)
else
base, extra = all_projects(current_user)
segments = all_projects(current_user)
end
 
if base and extra
union = Gitlab::SQL::Union.new([base.select(:id), extra.select(:id)])
if segments.length > 1
union = Gitlab::SQL::Union.new(segments.map { |s| s.select(:id) })
 
Project.where("projects.id IN (#{union.to_sql})")
else
base
segments.first
end
end
 
Loading
Loading
Loading
Loading
@@ -3,10 +3,19 @@ require 'spec_helper'
describe ProjectsFinder do
describe '#execute' do
let(:user) { create(:user) }
let(:group) { create(:group) }
 
let!(:private_project) { create(:project, :private) }
let!(:internal_project) { create(:project, :internal) }
let!(:public_project) { create(:project, :public) }
let!(:private_project) do
create(:project, :private, name: 'A', path: 'A')
end
let!(:internal_project) do
create(:project, :internal, group: group, name: 'B', path: 'B')
end
let!(:public_project) do
create(:project, :public, group: group, name: 'C', path: 'C')
end
 
let(:finder) { described_class.new }
 
Loading
Loading
@@ -38,8 +47,6 @@ describe ProjectsFinder do
end
 
describe 'with a group' do
let(:group) { public_project.group }
describe 'without a user' do
subject { finder.execute(nil, group: group) }
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment