diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-05-29 10:57:23 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-05-29 10:57:23 +0000 |
commit | f0a78f89cdc9218ac956e480baae8402a515a7cf (patch) | |
tree | a07927a51aceda2aa70a89c709cb2fe621f7350a | |
parent | 41a2b9da525ff0163340dc2822fb0953b369720c (diff) | |
parent | c3bca2ac743bfb76415ba8cf5d23cbd0c4245b9f (diff) | |
download | gitlab-ce-f0a78f89cdc9218ac956e480baae8402a515a7cf.tar.gz |
Merge branch 'fix_duplicated_assignees_on_milestone_page' into 'master'
Fix: Milestone - Participants list is showing duplicate assignees
Closes #32690
See merge request !11758
-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 |