Extend tests for delete branch service

This commit is contained in:
Grzegorz Bizon 2016-11-15 10:32:37 +01:00
parent 2a53d6c21a
commit e552e1fc22

View file

@ -2,27 +2,40 @@ require 'spec_helper'
describe DeleteBranchService, services: true do describe DeleteBranchService, services: true do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:repository) { project.repository }
let(:user) { create(:user) } let(:user) { create(:user) }
let(:service) { described_class.new(project, user) } let(:service) { described_class.new(project, user) }
describe '#execute' do describe '#execute' do
let(:result) { service.execute('feature') }
context 'when user has access to push to repository' do context 'when user has access to push to repository' do
before do before do
project.team << [user, :developer] project.team << [user, :developer]
end end
it 'removes the branch' do it 'removes the branch' do
expect(branch_exists?('feature')).to be true
result = service.execute('feature')
expect(result[:status]).to eq :success expect(result[:status]).to eq :success
expect(branch_exists?('feature')).to be false
end end
end end
context 'when user does not have access to push to repository' do context 'when user does not have access to push to repository' do
it 'does not remove branch' do it 'does not remove branch' do
expect(branch_exists?('feature')).to be true
result = service.execute('feature')
expect(result[:status]).to eq :error expect(result[:status]).to eq :error
expect(result[:message]).to eq 'You dont have push access to repo' expect(result[:message]).to eq 'You dont have push access to repo'
expect(branch_exists?('feature')).to be true
end end
end end
end end
def branch_exists?(branch_name)
repository.ref_exists?("refs/heads/#{branch_name}")
end
end end