89 lines
2.3 KiB
Ruby
89 lines
2.3 KiB
Ruby
describe Commit do
|
|
let(:commit) { Commit.new(:commit => '12345678') }
|
|
|
|
describe 'pull_request_number' do
|
|
context 'when commit is from pull request' do
|
|
before { commit.ref = 'refs/pull/180/merge' }
|
|
|
|
it 'returns pull request\'s number' do
|
|
commit.pull_request_number.should == 180
|
|
end
|
|
end
|
|
|
|
context 'when commit is not from pull request' do
|
|
before { commit.ref = 'refs/branch/master' }
|
|
|
|
it 'returns nil' do
|
|
commit.pull_request_number.should be_nil
|
|
end
|
|
end
|
|
end
|
|
|
|
describe 'pull_request?' do
|
|
it 'is false for a nil ref' do
|
|
commit.ref = nil
|
|
commit.pull_request?.should be_falsey
|
|
end
|
|
|
|
it 'is false for a ref named ref/branch/master' do
|
|
commit.ref = 'refs/branch/master'
|
|
commit.pull_request?.should be_falsey
|
|
end
|
|
|
|
it 'is false for a ref named ref/pull/180/head' do
|
|
commit.ref = 'refs/pull/180/head'
|
|
commit.pull_request?.should be_falsey
|
|
end
|
|
|
|
it 'is true for a ref named ref/pull/180/merge' do
|
|
commit.ref = 'refs/pull/180/merge'
|
|
commit.pull_request?.should be_truthy
|
|
end
|
|
end
|
|
|
|
describe '#range' do
|
|
context 'with compare_url present' do
|
|
before { commit.compare_url = 'https://github.com/rails/rails/compare/ffaab2c4ffee...60790e852a4f' }
|
|
|
|
it 'returns range' do
|
|
commit.range.should == 'ffaab2c4ffee...60790e852a4f'
|
|
end
|
|
end
|
|
|
|
context 'with a compare_url with ^ in it' do
|
|
before { commit.compare_url = 'https://github.com/rails/rails/compare/ffaab2c4ffee^...60790e852a4f' }
|
|
|
|
it 'returns range' do
|
|
commit.range.should == 'ffaab2c4ffee^...60790e852a4f'
|
|
end
|
|
end
|
|
|
|
context 'with invalid compare_url' do
|
|
before { commit.compare_url = 'https://github.com/rails/rails/compare/ffaab2c4ffee.....60790e852a4f' }
|
|
|
|
it 'returns nil' do
|
|
commit.range.should be_nil
|
|
end
|
|
end
|
|
|
|
context 'without compare_url' do
|
|
before { commit.compare_url = nil }
|
|
|
|
it 'returns nil' do
|
|
commit.range.should be_nil
|
|
end
|
|
end
|
|
|
|
context 'for a pull request' do
|
|
before do
|
|
commit.ref = 'refs/pull/1/merge'
|
|
commit.request = Request.new(:base_commit => 'abcdef', :head_commit => '123456')
|
|
end
|
|
|
|
it 'returns range' do
|
|
commit.range.should == 'abcdef...123456'
|
|
end
|
|
end
|
|
end
|
|
end
|