Call update hook from new GitHooksService class. #3069

This commit is contained in:
Rubén Dávila 2015-12-01 00:22:45 -05:00
parent 5145706c82
commit 338eb2c41e
3 changed files with 19 additions and 10 deletions

View file

@ -8,9 +8,7 @@ class GitHooksService
@newrev = newrev @newrev = newrev
@ref = ref @ref = ref
pre_status = run_hook('pre-receive') if run_hook('pre-receive') && run_hook('update')
if pre_status
yield yield
run_hook('post-receive') run_hook('post-receive')

View file

@ -107,7 +107,7 @@ describe Repository do
context 'when pre hooks were successful' do context 'when pre hooks were successful' do
it 'should run without errors' do it 'should run without errors' do
hook = double(trigger: true) hook = double(trigger: true)
expect(Gitlab::Git::Hook).to receive(:new).twice.and_return(hook) expect(Gitlab::Git::Hook).to receive(:new).exactly(3).times.and_return(hook)
expect { repository.add_branch(user, 'new_feature', 'master') }.not_to raise_error expect { repository.add_branch(user, 'new_feature', 'master') }.not_to raise_error
end end

View file

@ -17,16 +17,17 @@ describe GitHooksService do
describe '#execute' do describe '#execute' do
context 'when pre hooks were successful' do context 'when receive hooks were successful' do
it 'should call post hooks' do it 'should call post-receive hook' do
expect(service).to receive(:run_hook).with('pre-receive').and_return(true) hook = double(trigger: true)
expect(service).to receive(:run_hook).with('post-receive').and_return(true) expect(Gitlab::Git::Hook).to receive(:new).exactly(3).times.and_return(hook)
expect(service.execute(user, @repo_path, @blankrev, @newrev, @ref) { }).to eq(true) expect(service.execute(user, @repo_path, @blankrev, @newrev, @ref) { }).to eq(true)
end end
end end
context 'when pre hooks failed' do context 'when pre-receive hook failed' do
it 'should not call post hooks' do it 'should not call post-receive hook' do
expect(service).to receive(:run_hook).with('pre-receive').and_return(false) expect(service).to receive(:run_hook).with('pre-receive').and_return(false)
expect(service).not_to receive(:run_hook).with('post-receive') expect(service).not_to receive(:run_hook).with('post-receive')
@ -34,5 +35,15 @@ describe GitHooksService do
end end
end end
context 'when update hook failed' do
it 'should not call post-receive hook' do
expect(service).to receive(:run_hook).with('pre-receive').and_return(true)
expect(service).to receive(:run_hook).with('update').and_return(false)
expect(service).not_to receive(:run_hook).with('post-receive')
service.execute(user, @repo_path, @blankrev, @newrev, @ref)
end
end
end end
end end