|
| 1 | +require 'spec_helper' |
| 2 | + |
| 3 | +describe Gitlab::Diff::DiffRefs, lib: true do |
| 4 | + let(:project) { create(:project, :repository) } |
| 5 | + |
| 6 | + describe '#compare_in' do |
| 7 | + context 'with diff refs for the initial commit' do |
| 8 | + let(:commit) { project.commit('1a0b36b3cdad1d2ee32457c102a8c0b7056fa863') } |
| 9 | + subject { commit.diff_refs } |
| 10 | + |
| 11 | + it 'returns an appropriate comparison' do |
| 12 | + compare = subject.compare_in(project) |
| 13 | + |
| 14 | + expect(compare.diff_refs).to eq(subject) |
| 15 | + end |
| 16 | + end |
| 17 | + |
| 18 | + context 'with diff refs for a commit' do |
| 19 | + let(:commit) { project.commit('6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9') } |
| 20 | + subject { commit.diff_refs } |
| 21 | + |
| 22 | + it 'returns an appropriate comparison' do |
| 23 | + compare = subject.compare_in(project) |
| 24 | + |
| 25 | + expect(compare.diff_refs).to eq(subject) |
| 26 | + end |
| 27 | + end |
| 28 | + |
| 29 | + context 'with diff refs for a comparison through the base' do |
| 30 | + subject do |
| 31 | + described_class.new( |
| 32 | + start_sha: '0b4bc9a49b562e85de7cc9e834518ea6828729b9', # feature |
| 33 | + base_sha: 'ae73cb07c9eeaf35924a10f713b364d32b2dd34f', |
| 34 | + head_sha: 'e63f41fe459e62e1228fcef60d7189127aeba95a' # master |
| 35 | + ) |
| 36 | + end |
| 37 | + |
| 38 | + it 'returns an appropriate comparison' do |
| 39 | + compare = subject.compare_in(project) |
| 40 | + |
| 41 | + expect(compare.diff_refs).to eq(subject) |
| 42 | + end |
| 43 | + end |
| 44 | + |
| 45 | + context 'with diff refs for a straight comparison' do |
| 46 | + subject do |
| 47 | + described_class.new( |
| 48 | + start_sha: '0b4bc9a49b562e85de7cc9e834518ea6828729b9', # feature |
| 49 | + base_sha: '0b4bc9a49b562e85de7cc9e834518ea6828729b9', |
| 50 | + head_sha: 'e63f41fe459e62e1228fcef60d7189127aeba95a' # master |
| 51 | + ) |
| 52 | + end |
| 53 | + |
| 54 | + it 'returns an appropriate comparison' do |
| 55 | + compare = subject.compare_in(project) |
| 56 | + |
| 57 | + expect(compare.diff_refs).to eq(subject) |
| 58 | + end |
| 59 | + end |
| 60 | + end |
| 61 | +end |
0 commit comments