Commit 8bfc62fb8b02bde7da97958deb8aeda63581bfce

Authored by Dmitriy Zaporozhets
1 parent 37ef33cb

Convert TestHookContext into TestHookService. Added tests

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
app/contexts/test_hook_context.rb
... ... @@ -1,7 +0,0 @@
1   -class TestHookContext < BaseContext
2   - def execute
3   - hook = project.hooks.find(params[:id])
4   - data = GitPushService.new.sample_data(project, current_user)
5   - hook.execute(data)
6   - end
7   -end
app/controllers/projects/hooks_controller.rb
... ... @@ -24,15 +24,20 @@ class Projects::HooksController &lt; Projects::ApplicationController
24 24 end
25 25  
26 26 def test
27   - TestHookContext.new(project, current_user, params).execute
  27 + TestHookService.new.execute(hook, current_user)
28 28  
29 29 redirect_to :back
30 30 end
31 31  
32 32 def destroy
33   - @hook = @project.hooks.find(params[:id])
34   - @hook.destroy
  33 + hook.destroy
35 34  
36 35 redirect_to project_hooks_path(@project)
37 36 end
  37 +
  38 + private
  39 +
  40 + def hook
  41 + @hook ||= @project.hooks.find(params[:id])
  42 + end
38 43 end
... ...
app/services/test_hook_service.rb 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +class TestHookService
  2 + def execute(hook, current_user)
  3 + data = GitPushService.new.sample_data(hook.project, current_user)
  4 + hook.execute(data)
  5 + end
  6 +end
... ...
spec/services/test_hook_service_spec.rb 0 → 100644
... ... @@ -0,0 +1,14 @@
  1 +require 'spec_helper'
  2 +
  3 +describe TestHookService do
  4 + let (:user) { create :user }
  5 + let (:project) { create :project_with_code }
  6 + let (:hook) { create :project_hook, project: project }
  7 +
  8 + describe :execute do
  9 + it "should execute successfully" do
  10 + stub_request(:post, hook.url).to_return(status: 200)
  11 + TestHookService.new.execute(hook, user).should be_true
  12 + end
  13 + end
  14 +end
... ...