summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblunceford <blunceford@gitlab.com>2019-07-16 15:33:35 -0600
committerblunceford <blunceford@gitlab.com>2019-07-16 15:33:35 -0600
commit6ff16f4bd0c229125e137cc5ce02f3faccbd20be (patch)
treec15a45904aae8123abc471373d16d68ce337951d
parentb8d876f1325c2bcb40350180c99fde289b46d3b9 (diff)
downloadgitlab-ce-6ff16f4bd0c229125e137cc5ce02f3faccbd20be.tar.gz
Fix bug with closed milestones in dashboard
-rw-r--r--app/models/dashboard_group_milestone.rb3
-rw-r--r--spec/controllers/dashboard/milestones_controller_spec.rb22
2 files changed, 23 insertions, 2 deletions
diff --git a/app/models/dashboard_group_milestone.rb b/app/models/dashboard_group_milestone.rb
index 74aa04ab7d0..ec52f1ed370 100644
--- a/app/models/dashboard_group_milestone.rb
+++ b/app/models/dashboard_group_milestone.rb
@@ -15,8 +15,7 @@ class DashboardGroupMilestone < GlobalMilestone
milestones = Milestone.of_groups(groups.select(:id))
.reorder_by_due_date_asc
.order_by_name_asc
- .active
milestones = milestones.search_title(params[:search_title]) if params[:search_title].present?
- milestones.map { |m| new(m) }
+ Milestone.filter_by_state(milestones, params[:state]).map { |m| new(m) }
end
end
diff --git a/spec/controllers/dashboard/milestones_controller_spec.rb b/spec/controllers/dashboard/milestones_controller_spec.rb
index 4de537ae6f8..010d6ba477d 100644
--- a/spec/controllers/dashboard/milestones_controller_spec.rb
+++ b/spec/controllers/dashboard/milestones_controller_spec.rb
@@ -59,6 +59,18 @@ describe Dashboard::MilestonesController do
expect(json_response.map { |i| i["group_name"] }.compact).to match_array(group.name)
end
+ it 'returns closed group and project milestones to which the user belongs' do
+ closed_group_milestone = create(:milestone, group: group, state: 'closed')
+ closed_project_milestone = create(:milestone, project: project, state: 'closed')
+
+ get :index, params: { state: 'closed' }, format: :json
+
+ expect(response).to have_gitlab_http_status(200)
+ expect(json_response.size).to eq(2)
+ expect(json_response.map { |i| i["name"] }).to match_array([closed_group_milestone.name, closed_project_milestone.name])
+ expect(json_response.map { |i| i["group_name"] }.compact).to match_array(group.name)
+ end
+
it 'searches legacy project milestones by title when search_title is given' do
project_milestone = create(:milestone, title: 'Project milestone title', project: project)
@@ -84,6 +96,16 @@ describe Dashboard::MilestonesController do
expect(response.body).to include("Closed\n<span class=\"badge badge-pill\">0</span>")
end
+ it 'shows counts of closed group and project milestones to which the user belongs to' do
+ closed_group_milestone = create(:milestone, group: group, state: 'closed')
+ closed_project_milestone = create(:milestone, project: project, state: 'closed')
+
+ get :index
+
+ expect(response.body).to include("Open\n<span class=\"badge badge-pill\">2</span>")
+ expect(response.body).to include("Closed\n<span class=\"badge badge-pill\">2</span>")
+ end
+
context 'external authorization' do
subject { get :index }