diff options
-rw-r--r-- | app/models/merge_request_diff.rb | 2 | ||||
-rw-r--r-- | spec/models/merge_request_diff_spec.rb | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index e286a4e57f2..3556448e547 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -118,7 +118,7 @@ class MergeRequestDiff < ActiveRecord::Base end def last_commit_sha - commit_shas.first + merge_request_diff_commits.first&.sha end def first_commit diff --git a/spec/models/merge_request_diff_spec.rb b/spec/models/merge_request_diff_spec.rb index 1849d3bac12..fff3e810977 100644 --- a/spec/models/merge_request_diff_spec.rb +++ b/spec/models/merge_request_diff_spec.rb @@ -1,7 +1,8 @@ require 'spec_helper' describe MergeRequestDiff do - let(:diff_with_commits) { create(:merge_request).merge_request_diff } + let(:merge_request) { create(:merge_request) } + let(:diff_with_commits) { merge_request.merge_request_diff } describe 'create new record' do subject { diff_with_commits } @@ -224,6 +225,18 @@ describe MergeRequestDiff do end end + describe '#last_commit_sha' do + let(:commit_shas) { diff_with_commits.commit_shas } + let(:sorted_commits) { merge_request.merge_request_diff.merge_request_diff_commits.sort_by { |x| x.committed_date } } + let(:last_commit_sha) { diff_with_commits.last_commit_sha } + + it 'returns the most recent commit SHA' do + expect(last_commit_sha).to eq(commit_shas.first) + # Sanity check the sort order + expect(last_commit_sha).to eq(sorted_commits.last.sha) + end + end + describe '#commits_by_shas' do let(:commit_shas) { diff_with_commits.commit_shas } |