Improve tests for merge request diff model

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
Dmitriy Zaporozhets 2016-09-29 17:46:47 +03:00
parent afe28b7be3
commit cdcc11d48f
2 changed files with 26 additions and 16 deletions

View File

@ -169,7 +169,7 @@ class MergeRequestDiff < ActiveRecord::Base
def compare_with(sha, straight = true)
# When compare merge request versions we want diff A..B instead of A...B
# so we handle cases when user squash and rebase commits in one of versions.
# so we handle cases when user does squash and rebase of the commits between versions.
# For this reason we set straight to true by default.
CompareService.new.execute(project, head_commit_sha, project, sha, straight)
end

View File

@ -74,27 +74,37 @@ describe MergeRequestDiff, models: true do
end
end
end
end
describe '#commits_sha' do
shared_examples 'returning all commits SHA' do
it 'returns all commits SHA' do
commits_sha = subject.commits_sha
describe '#commits_sha' do
shared_examples 'returning all commits SHA' do
it 'returns all commits SHA' do
commits_sha = subject.commits_sha
expect(commits_sha).to eq(subject.commits.map(&:sha))
end
expect(commits_sha).to eq(subject.commits.map(&:sha))
end
end
context 'when commits were loaded' do
before do
subject.commits
end
context 'when commits were loaded' do
before do
subject.commits
end
it_behaves_like 'returning all commits SHA'
end
it_behaves_like 'returning all commits SHA'
end
context 'when commits were not loaded' do
it_behaves_like 'returning all commits SHA'
end
end
context 'when commits were not loaded' do
it_behaves_like 'returning all commits SHA'
end
describe '#compare_with' do
subject { create(:merge_request).merge_request_diff }
it 'delegates compare to the service' do
expect(CompareService).to receive(:new).and_call_original
subject.compare_with('ae73cb07c9eeaf35924a10f713b364d32b2dd34f')
end
end
end