Improve tests for merge request diff model
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
afe28b7be3
commit
cdcc11d48f
|
@ -169,7 +169,7 @@ class MergeRequestDiff < ActiveRecord::Base
|
||||||
|
|
||||||
def compare_with(sha, straight = true)
|
def compare_with(sha, straight = true)
|
||||||
# When compare merge request versions we want diff A..B instead of A...B
|
# 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.
|
# For this reason we set straight to true by default.
|
||||||
CompareService.new.execute(project, head_commit_sha, project, sha, straight)
|
CompareService.new.execute(project, head_commit_sha, project, sha, straight)
|
||||||
end
|
end
|
||||||
|
|
|
@ -74,27 +74,37 @@ describe MergeRequestDiff, models: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#commits_sha' do
|
describe '#commits_sha' do
|
||||||
shared_examples 'returning all commits SHA' do
|
shared_examples 'returning all commits SHA' do
|
||||||
it 'returns all commits SHA' do
|
it 'returns all commits SHA' do
|
||||||
commits_sha = subject.commits_sha
|
commits_sha = subject.commits_sha
|
||||||
|
|
||||||
expect(commits_sha).to eq(subject.commits.map(&:sha))
|
expect(commits_sha).to eq(subject.commits.map(&:sha))
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when commits were loaded' do
|
||||||
|
before do
|
||||||
|
subject.commits
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when commits were loaded' do
|
it_behaves_like 'returning all commits SHA'
|
||||||
before do
|
end
|
||||||
subject.commits
|
|
||||||
end
|
|
||||||
|
|
||||||
it_behaves_like 'returning all commits SHA'
|
context 'when commits were not loaded' do
|
||||||
end
|
it_behaves_like 'returning all commits SHA'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'when commits were not loaded' do
|
describe '#compare_with' do
|
||||||
it_behaves_like 'returning all commits SHA'
|
subject { create(:merge_request).merge_request_diff }
|
||||||
end
|
|
||||||
|
it 'delegates compare to the service' do
|
||||||
|
expect(CompareService).to receive(:new).and_call_original
|
||||||
|
|
||||||
|
subject.compare_with('ae73cb07c9eeaf35924a10f713b364d32b2dd34f')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue