diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-01-15 14:38:50 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-01-15 14:38:50 +0200 |
commit | 8bfc62fb8b02bde7da97958deb8aeda63581bfce (patch) | |
tree | 1ccb80a7780a4d7b888070c690276bf6271d8989 | |
parent | 37ef33cba18f947699fc3f285397be34861ab51e (diff) | |
download | gitlab-ce-8bfc62fb8b02bde7da97958deb8aeda63581bfce.tar.gz |
Convert TestHookContext into TestHookService. Added tests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r-- | app/contexts/test_hook_context.rb | 7 | ||||
-rw-r--r-- | app/controllers/projects/hooks_controller.rb | 11 | ||||
-rw-r--r-- | app/services/test_hook_service.rb | 6 | ||||
-rw-r--r-- | spec/services/test_hook_service_spec.rb | 14 |
4 files changed, 28 insertions, 10 deletions
diff --git a/app/contexts/test_hook_context.rb b/app/contexts/test_hook_context.rb deleted file mode 100644 index 63eda6c7d06..00000000000 --- a/app/contexts/test_hook_context.rb +++ /dev/null @@ -1,7 +0,0 @@ -class TestHookContext < BaseContext - def execute - hook = project.hooks.find(params[:id]) - data = GitPushService.new.sample_data(project, current_user) - hook.execute(data) - end -end diff --git a/app/controllers/projects/hooks_controller.rb b/app/controllers/projects/hooks_controller.rb index 314d87df034..a863b318324 100644 --- a/app/controllers/projects/hooks_controller.rb +++ b/app/controllers/projects/hooks_controller.rb @@ -24,15 +24,20 @@ class Projects::HooksController < Projects::ApplicationController end def test - TestHookContext.new(project, current_user, params).execute + TestHookService.new.execute(hook, current_user) redirect_to :back end def destroy - @hook = @project.hooks.find(params[:id]) - @hook.destroy + hook.destroy redirect_to project_hooks_path(@project) end + + private + + def hook + @hook ||= @project.hooks.find(params[:id]) + end end diff --git a/app/services/test_hook_service.rb b/app/services/test_hook_service.rb new file mode 100644 index 00000000000..17d86a7a274 --- /dev/null +++ b/app/services/test_hook_service.rb @@ -0,0 +1,6 @@ +class TestHookService + def execute(hook, current_user) + data = GitPushService.new.sample_data(hook.project, current_user) + hook.execute(data) + end +end diff --git a/spec/services/test_hook_service_spec.rb b/spec/services/test_hook_service_spec.rb new file mode 100644 index 00000000000..fbe9066096d --- /dev/null +++ b/spec/services/test_hook_service_spec.rb @@ -0,0 +1,14 @@ +require 'spec_helper' + +describe TestHookService do + let (:user) { create :user } + let (:project) { create :project_with_code } + let (:hook) { create :project_hook, project: project } + + describe :execute do + it "should execute successfully" do + stub_request(:post, hook.url).to_return(status: 200) + TestHookService.new.execute(hook, user).should be_true + end + end +end |