From 38dd9b545cda01df61c055dc18698a38a84174d9 Mon Sep 17 00:00:00 2001
From: Gabriel Gizotti <gabriel@gizotti.com>
Date: Wed, 28 Dec 2016 23:22:31 +1000
Subject: [PATCH] use MergeRequest#closes_issues instead of rewriting code to
 retrieve closing issues on MergeRequest#issues_mentioned_but_not_closing

---
 app/models/merge_request.rb       |  6 +-----
 spec/models/merge_request_spec.rb | 10 +++++++---
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 22490d121c7..61845bf4036 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -576,11 +576,7 @@ class MergeRequest < ActiveRecord::Base
     ext = Gitlab::ReferenceExtractor.new(project, current_user)
     ext.analyze(description)
 
-    issues = ext.issues
-    closing_issues = Gitlab::ClosingIssueExtractor.new(project, current_user).
-      closed_by_message(description)
-
-    issues - closing_issues
+    ext.issues - closes_issues
   end
 
   def target_project_path
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 5da00a8636a..646e6c6dbb3 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -283,12 +283,16 @@ describe MergeRequest, models: true do
   end
 
   describe '#issues_mentioned_but_not_closing' do
-    it 'detects issues mentioned in description but not closed' do
-      mentioned_issue = create(:issue, project: subject.project)
+    let(:closing_issue) { create :issue, project: subject.project }
+    let(:mentioned_issue) { create :issue, project: subject.project }
+
+    let(:commit) { double('commit', safe_message: "Fixes #{closing_issue.to_reference}") }
 
+    it 'detects issues mentioned in description but not closed' do
       subject.project.team << [subject.author, :developer]
-      subject.description = "Is related to #{mentioned_issue.to_reference}"
+      subject.description = "Is related to #{mentioned_issue.to_reference} and #{closing_issue.to_reference}"
 
+      allow(subject).to receive(:commits).and_return([commit])
       allow(subject.project).to receive(:default_branch).
         and_return(subject.target_branch)
 
-- 
GitLab