summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2017-10-04 23:04:47 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2017-10-05 11:10:57 +0200
commitec8a7a36c09f44c44a21444f632389e7d08166cf (patch)
tree38c37bde375339d0e9dccd6e26769d327db39989
parentdda023d66d09b8a3a43a5599bde42ac52eb6fd06 (diff)
downloadgitlab-ce-ec8a7a36c09f44c44a21444f632389e7d08166cf.tar.gz
Make sure all ancestors are loaded when searching groups
-rw-r--r--app/controllers/concerns/group_tree.rb2
-rw-r--r--spec/controllers/concerns/group_tree_spec.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/app/controllers/concerns/group_tree.rb b/app/controllers/concerns/group_tree.rb
index c5cf336463a..9104d4a32cf 100644
--- a/app/controllers/concerns/group_tree.rb
+++ b/app/controllers/concerns/group_tree.rb
@@ -2,7 +2,7 @@ module GroupTree
def render_group_tree(groups)
if params[:filter].present?
@groups = Gitlab::GroupHierarchy.new(groups).all_groups
- @groups = @groups.search(params[:filter])
+ @groups = Gitlab::GroupHierarchy.new(@groups.search(params[:filter])).base_and_ancestors
else
# Only show root groups if no parent-id is given
@groups = groups.where(parent_id: params[:parent_id])
diff --git a/spec/controllers/concerns/group_tree_spec.rb b/spec/controllers/concerns/group_tree_spec.rb
index 5d4fb66b492..2fe041a5ecc 100644
--- a/spec/controllers/concerns/group_tree_spec.rb
+++ b/spec/controllers/concerns/group_tree_spec.rb
@@ -45,12 +45,12 @@ describe GroupTree do
expect(assigns(:groups)).to contain_exactly(subgroup)
end
- it 'allows filtering for subgroups' do
+ it 'allows filtering for subgroups and includes the parents for rendering' do
subgroup = create(:group, :public, parent: group, name: 'filter')
get :index, filter: 'filt', format: :json
- expect(assigns(:groups)).to contain_exactly(subgroup)
+ expect(assigns(:groups)).to contain_exactly(group, subgroup)
end
end