diff options
author | Eugenia Grieff <egrieff@gitlab.com> | 2019-07-18 18:52:10 +0000 |
---|---|---|
committer | Bob Van Landuyt <bob@gitlab.com> | 2019-07-18 18:52:10 +0000 |
commit | 4b7cf4a54e95316a582d8df4211674d67b7cf1e2 (patch) | |
tree | 765ae9e5666071ef556294614bc225a8507e90bf | |
parent | 0b859d2f4fb3c7595f343fda0caa7dfc6919462b (diff) | |
download | gitlab-ce-4b7cf4a54e95316a582d8df4211674d67b7cf1e2.tar.gz |
CE port for milestones should not be set on epics issue promotion
-rw-r--r-- | app/models/concerns/issuable.rb | 7 | ||||
-rw-r--r-- | app/services/issuable/clone/attributes_rewriter.rb | 2 | ||||
-rw-r--r-- | spec/models/concerns/issuable_spec.rb | 21 |
3 files changed, 30 insertions, 0 deletions
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb index 952de92cae1..e60b6497cb7 100644 --- a/app/models/concerns/issuable.rb +++ b/app/models/concerns/issuable.rb @@ -427,4 +427,11 @@ module Issuable def wipless_title_changed(old_title) old_title != title end + + ## + # Overridden on EE module + # + def supports_milestone? + respond_to?(:milestone_id) + end end diff --git a/app/services/issuable/clone/attributes_rewriter.rb b/app/services/issuable/clone/attributes_rewriter.rb index 0300cc0d8d3..3c061d35558 100644 --- a/app/services/issuable/clone/attributes_rewriter.rb +++ b/app/services/issuable/clone/attributes_rewriter.rb @@ -17,6 +17,8 @@ module Issuable private def cloneable_milestone + return unless new_entity.supports_milestone? + title = original_entity.milestone&.title return unless title diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb index 68224a56515..e19da41c3fe 100644 --- a/spec/models/concerns/issuable_spec.rb +++ b/spec/models/concerns/issuable_spec.rb @@ -774,4 +774,25 @@ describe Issuable do end end end + + describe '#supports_milestone?' do + let(:group) { create(:group) } + let(:project) { create(:project, group: group) } + + context "for issues" do + let(:issue) { build(:issue, project: project) } + + it 'returns true' do + expect(issue.supports_milestone?).to be_truthy + end + end + + context "for merge requests" do + let(:merge_request) { build(:merge_request, target_project: project, source_project: project) } + + it 'returns true' do + expect(merge_request.supports_milestone?).to be_truthy + end + end + end end |