diff options
author | Valery Sizov <valery@gitlab.com> | 2017-05-29 12:20:41 +0300 |
---|---|---|
committer | Valery Sizov <valery@gitlab.com> | 2017-05-29 12:24:30 +0300 |
commit | c3bca2ac743bfb76415ba8cf5d23cbd0c4245b9f (patch) | |
tree | f5c96f6722282ebb5d7f0d01016fb9be69ea11df | |
parent | e5226177ac667c8ad4cc07270bbdef24031eb8a2 (diff) | |
download | gitlab-ce-fix_duplicated_assignees_on_milestone_page.tar.gz |
Fix: Milestone - Participants list is showing duplicate assigneesfix_duplicated_assignees_on_milestone_page
-rw-r--r-- | app/models/milestone.rb | 2 | ||||
-rw-r--r-- | spec/models/milestone_spec.rb | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/app/models/milestone.rb b/app/models/milestone.rb index c06bfe0ccdd..b04bed4c014 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -107,7 +107,7 @@ class Milestone < ActiveRecord::Base end def participants - User.joins(assigned_issues: :milestone).where("milestones.id = ?", id) + User.joins(assigned_issues: :milestone).where("milestones.id = ?", id).uniq end def self.sort(method) diff --git a/spec/models/milestone_spec.rb b/spec/models/milestone_spec.rb index e3e8e6d571c..aa1ce89ffd7 100644 --- a/spec/models/milestone_spec.rb +++ b/spec/models/milestone_spec.rb @@ -249,4 +249,17 @@ describe Milestone, models: true do expect(milestone.to_reference(another_project)).to eq "sample-project%1" end end + + describe '#participants' do + let(:project) { build(:empty_project, name: 'sample-project') } + let(:milestone) { build(:milestone, iid: 1, project: project) } + + it 'returns participants without duplicates' do + user = create :user + create :issue, project: project, milestone: milestone, assignees: [user] + create :issue, project: project, milestone: milestone, assignees: [user] + + expect(milestone.participants).to eq [user] + end + end end |