diff --git a/app/controllers/header/projects_controller.rb b/app/controllers/header/projects_controller.rb index 0fbda05651ff..b304b96367e7 100644 --- a/app/controllers/header/projects_controller.rb +++ b/app/controllers/header/projects_controller.rb @@ -162,7 +162,9 @@ def build_tree(projects) def sort_nodes(nodes) nodes.sort_by { |n| n[:project].name.downcase }.each do |node| node[:children] = sort_nodes(node[:children]) - node[:expanded] = node[:children].any? { |c| c[:project].id == @current_project_id || c[:expanded] } + node[:expanded] = filter_mode == "favorited" || node[:children].any? do |c| + c[:project].id == @current_project_id || c[:expanded] + end end end end diff --git a/spec/controllers/header/projects_controller_spec.rb b/spec/controllers/header/projects_controller_spec.rb index 87f7e488f941..90f5711efa24 100644 --- a/spec/controllers/header/projects_controller_spec.rb +++ b/spec/controllers/header/projects_controller_spec.rb @@ -103,6 +103,13 @@ make_request expect(assigns(:favorited_ids)).to include(child_project.id) end + + it "marks parent nodes as expanded" do + make_request + tree = assigns(:tree) + parent_node = tree.find { |n| n[:project] == parent_project } + expect(parent_node[:expanded]).to be(true) + end end context "when the user has no favorites" do