summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-07-28 23:40:13 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-08-02 13:31:19 +0300
commit3c1dca0301366c63d1800aa11e73a82e68e120d0 (patch)
tree253897f22d30463f7c87d16b2c40e547cae95c9a
parent0e974b52d8f5806c24fdc80ef5b62b261f5be2ba (diff)
downloadgitlab-ce-3c1dca0301366c63d1800aa11e73a82e68e120d0.tar.gz
Add more tests to merge_request_diff and improve initialize
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/models/merge_request.rb4
-rw-r--r--app/models/merge_request_diff.rb4
-rw-r--r--spec/models/merge_request_diff_spec.rb17
3 files changed, 21 insertions, 4 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 08523e45c65..6d36a5ba288 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -246,7 +246,9 @@ class MergeRequest < ActiveRecord::Base
end
def diff_refs
- merge_request_diff.diff_refs
+ if merge_request_diff
+ merge_request_diff.diff_refs
+ end
end
def validate_branches
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb
index 940a1016302..b668b62cdac 100644
--- a/app/models/merge_request_diff.rb
+++ b/app/models/merge_request_diff.rb
@@ -35,7 +35,7 @@ class MergeRequestDiff < ActiveRecord::Base
# have those variables in the database so we try to initialize it
def initialize_commits_sha
self.start_commit_sha ||= merge_request.target_branch_sha
- self.head_commit_sha ||= last_commit.try(:sha) || merge_request.source_branch_sha
+ self.head_commit_sha ||= persisted? ? last_commit.sha : merge_request.source_branch_sha
self.base_commit_sha ||= find_base_sha
end
@@ -191,9 +191,7 @@ class MergeRequestDiff < ActiveRecord::Base
end
new_attributes[:st_diffs] = new_diffs
-
update_columns_serialized(new_attributes)
-
keep_around_commits
end
diff --git a/spec/models/merge_request_diff_spec.rb b/spec/models/merge_request_diff_spec.rb
index 9a637c94fbe..16bba82181b 100644
--- a/spec/models/merge_request_diff_spec.rb
+++ b/spec/models/merge_request_diff_spec.rb
@@ -1,6 +1,23 @@
require 'spec_helper'
describe MergeRequestDiff, models: true do
+ describe 'initialize new object' do
+ subject { build(:merge_request).merge_request_diffs.build }
+
+ it { expect(subject).to be_valid }
+ it { expect(subject.head_commit_sha).to eq('5937ac0a7beb003549fc5fd26fc247adbce4a52e') }
+ it { expect(subject.base_commit_sha).to eq('ae73cb07c9eeaf35924a10f713b364d32b2dd34f') }
+ it { expect(subject.start_commit_sha).to eq('0b4bc9a49b562e85de7cc9e834518ea6828729b9') }
+ end
+
+ describe 'create new record' do
+ subject { create(:merge_request) }
+
+ it { expect(subject).to be_valid }
+ it { expect(subject.commits.count).to eq(5) }
+ it { expect(subject.diffs.count).to eq(8) }
+ end
+
describe '#diffs' do
let(:mr) { create(:merge_request, :with_diffs) }
let(:mr_diff) { mr.merge_request_diff }