diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2016-10-04 14:27:47 +0300 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2016-10-04 14:27:47 +0300 |
commit | 796f531f2b4de62eac3db41835e56080520eaa48 (patch) | |
tree | 72a34e056de5d994a17b2f47fe6cccb4d67d3939 /spec/models/merge_request_spec.rb | |
parent | 8c280b1c148e97263d3b8fa91b3bbf9b4c54fe5b (diff) | |
parent | a97280ea3da593cdf6eadff9cdb4f04f4d6c1a4b (diff) |
Merge branch 'issue_22446' into 'master'
Fix bug when trying to cache closed issues from external issue trackers
fixes #22446
See merge request !6619
Diffstat (limited to 'spec/models/merge_request_spec.rb')
-rw-r--r-- | spec/models/merge_request_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index c29364466f0..38b6da50168 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -86,6 +86,30 @@ describe MergeRequest, models: true do end end + describe '#cache_merge_request_closes_issues!' do + before do + subject.project.team << [subject.author, :developer] + subject.target_branch = subject.project.default_branch + end + + it 'caches closed issues' do + issue = create :issue, project: subject.project + commit = double('commit1', safe_message: "Fixes #{issue.to_reference}") + allow(subject).to receive(:commits).and_return([commit]) + + expect { subject.cache_merge_request_closes_issues! }.to change(subject.merge_requests_closing_issues, :count).by(1) + end + + it 'does not cache issues from external trackers' do + subject.project.update_attribute(:has_external_issue_tracker, true) + issue = ExternalIssue.new('JIRA-123', subject.project) + commit = double('commit1', safe_message: "Fixes #{issue.to_reference}") + allow(subject).to receive(:commits).and_return([commit]) + + expect { subject.cache_merge_request_closes_issues! }.not_to change(subject.merge_requests_closing_issues, :count) + end + end + describe '#source_branch_sha' do let(:last_branch_commit) { subject.source_project.repository.commit(subject.source_branch) } |