Commit 655418bed2f81651c54988963713769f85d8b5da

Authored by Valeriy Sizov
1 parent f5908cef

System hooks: fix broken tests

app/roles/git_push.rb
... ... @@ -27,7 +27,7 @@ module GitPush
27 27 true
28 28 end
29 29  
30   - def execute_web_hooks(oldrev, newrev, ref, user)
  30 + def execute_hooks(oldrev, newrev, ref, user)
31 31 ref_parts = ref.split('/')
32 32  
33 33 # Return if this is not a push to a branch (e.g. new commits)
... ... @@ -35,7 +35,7 @@ module GitPush
35 35  
36 36 data = post_receive_data(oldrev, newrev, ref, user)
37 37  
38   - hooks.each { |web_hook| web_hook.execute(data) }
  38 + hooks.each { |hook| hook.execute(data) }
39 39 end
40 40  
41 41 def post_receive_data(oldrev, newrev, ref, user)
... ... @@ -97,7 +97,7 @@ module GitPush
97 97 self.update_merge_requests(oldrev, newrev, ref, user)
98 98  
99 99 # Execute web hooks
100   - self.execute_web_hooks(oldrev, newrev, ref, user)
  100 + self.execute_hooks(oldrev, newrev, ref, user)
101 101  
102 102 # Create satellite
103 103 self.satellite.create unless self.satellite.exists?
... ...
spec/factories.rb
... ... @@ -60,7 +60,7 @@ Factory.add(:key, Key) do |obj|
60 60 obj.key = File.read(File.join(Rails.root, "db", "pkey.example"))
61 61 end
62 62  
63   -Factory.add(:web_hook, WebHook) do |obj|
  63 +Factory.add(:project_hook, ProjectHook) do |obj|
64 64 obj.url = Faker::Internet.uri("http")
65 65 end
66 66  
... ...
spec/models/project_hooks_spec.rb
... ... @@ -21,44 +21,44 @@ describe Project, "Hooks" do
21 21 end
22 22 end
23 23  
24   - describe "Web hooks" do
  24 + describe "Project hooks" do
25 25 context "with no web hooks" do
26 26 it "raises no errors" do
27 27 lambda {
28   - project.execute_web_hooks('oldrev', 'newrev', 'ref', @user)
  28 + project.execute_hooks('oldrev', 'newrev', 'ref', @user)
29 29 }.should_not raise_error
30 30 end
31 31 end
32 32  
33 33 context "with web hooks" do
34 34 before do
35   - @webhook = Factory(:web_hook)
36   - @webhook_2 = Factory(:web_hook)
37   - project.web_hooks << [@webhook, @webhook_2]
  35 + @project_hook = Factory(:project_hook)
  36 + @project_hook_2 = Factory(:project_hook)
  37 + project.hooks << [@project_hook, @project_hook_2]
38 38 end
39 39  
40 40 it "executes multiple web hook" do
41   - @webhook.should_receive(:execute).once
42   - @webhook_2.should_receive(:execute).once
  41 + @project_hook.should_receive(:execute).once
  42 + @project_hook_2.should_receive(:execute).once
43 43  
44   - project.execute_web_hooks('oldrev', 'newrev', 'refs/heads/master', @user)
  44 + project.execute_hooks('oldrev', 'newrev', 'refs/heads/master', @user)
45 45 end
46 46 end
47 47  
48 48 context "does not execute web hooks" do
49 49 before do
50   - @webhook = Factory(:web_hook)
51   - project.web_hooks << [@webhook]
  50 + @project_hook = Factory(:project_hook)
  51 + project.hooks << [@project_hook]
52 52 end
53 53  
54 54 it "when pushing a branch for the first time" do
55   - @webhook.should_not_receive(:execute)
56   - project.execute_web_hooks('00000000000000000000000000000000', 'newrev', 'refs/heads/master', @user)
  55 + @project_hook.should_not_receive(:execute)
  56 + project.execute_hooks('00000000000000000000000000000000', 'newrev', 'refs/heads/master', @user)
57 57 end
58 58  
59 59 it "when pushing tags" do
60   - @webhook.should_not_receive(:execute)
61   - project.execute_web_hooks('oldrev', 'newrev', 'refs/tags/v1.0.0', @user)
  60 + @project_hook.should_not_receive(:execute)
  61 + project.execute_hooks('oldrev', 'newrev', 'refs/tags/v1.0.0', @user)
62 62 end
63 63 end
64 64  
... ...
spec/models/project_spec.rb
... ... @@ -11,7 +11,7 @@ describe Project do
11 11 it { should have_many(:issues).dependent(:destroy) }
12 12 it { should have_many(:notes).dependent(:destroy) }
13 13 it { should have_many(:snippets).dependent(:destroy) }
14   - it { should have_many(:web_hooks).dependent(:destroy) }
  14 + it { should have_many(:hooks).dependent(:destroy) }
15 15 it { should have_many(:deploy_keys).dependent(:destroy) }
16 16 end
17 17  
... ...
spec/models/web_hook_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe WebHook do
  3 +describe ProjectHook do
4 4 describe "Associations" do
5 5 it { should belong_to :project }
6 6 end
... ... @@ -23,32 +23,32 @@ describe WebHook do
23 23  
24 24 describe "execute" do
25 25 before(:each) do
26   - @webhook = Factory :web_hook
  26 + @project_hook = Factory :project_hook
27 27 @project = Factory :project
28   - @project.web_hooks << [@webhook]
  28 + @project.hooks << [@project_hook]
29 29 @data = { before: 'oldrev', after: 'newrev', ref: 'ref'}
30 30  
31   - WebMock.stub_request(:post, @webhook.url)
  31 + WebMock.stub_request(:post, @project_hook.url)
32 32 end
33 33  
34 34 it "POSTs to the web hook URL" do
35   - @webhook.execute(@data)
36   - WebMock.should have_requested(:post, @webhook.url).once
  35 + @project_hook.execute(@data)
  36 + WebMock.should have_requested(:post, @project_hook.url).once
37 37 end
38 38  
39 39 it "POSTs the data as JSON" do
40 40 json = @data.to_json
41 41  
42   - @webhook.execute(@data)
43   - WebMock.should have_requested(:post, @webhook.url).with(body: json).once
  42 + @project_hook.execute(@data)
  43 + WebMock.should have_requested(:post, @project_hook.url).with(body: json).once
44 44 end
45 45  
46 46 it "catches exceptions" do
47 47 WebHook.should_receive(:post).and_raise("Some HTTP Post error")
48 48  
49 49 lambda {
50   - @webhook.execute(@data)
51   - }.should_not raise_error
  50 + @project_hook.execute(@data)
  51 + }.should raise_error
52 52 end
53 53 end
54 54 end
... ...
spec/requests/admin/security_spec.rb
... ... @@ -13,9 +13,9 @@ describe &quot;Admin::Projects&quot; do
13 13 it { admin_users_path.should be_denied_for :visitor }
14 14 end
15 15  
16   - describe "GET /admin/emails" do
17   - it { admin_emails_path.should be_allowed_for :admin }
18   - it { admin_emails_path.should be_denied_for :user }
19   - it { admin_emails_path.should be_denied_for :visitor }
  16 + describe "GET /admin/hooks" do
  17 + it { admin_hooks_path.should be_allowed_for :admin }
  18 + it { admin_hooks_path.should be_denied_for :user }
  19 + it { admin_hooks_path.should be_denied_for :visitor }
20 20 end
21 21 end
... ...
spec/requests/hooks_spec.rb
... ... @@ -9,7 +9,7 @@ describe &quot;Hooks&quot; do
9 9  
10 10 describe "GET index" do
11 11 it "should be available" do
12   - @hook = Factory :web_hook, :project => @project
  12 + @hook = Factory :project_hook, :project => @project
13 13 visit project_hooks_path(@project)
14 14 page.should have_content "Hooks"
15 15 page.should have_content @hook.url
... ... @@ -21,7 +21,7 @@ describe &quot;Hooks&quot; do
21 21 @url = Faker::Internet.uri("http")
22 22 visit project_hooks_path(@project)
23 23 fill_in "hook_url", :with => @url
24   - expect { click_button "Add Web Hook" }.to change(WebHook, :count).by(1)
  24 + expect { click_button "Add Web Hook" }.to change(ProjectHook, :count).by(1)
25 25 end
26 26  
27 27 it "should open new team member popup" do
... ... @@ -32,7 +32,8 @@ describe &quot;Hooks&quot; do
32 32  
33 33 describe "Test" do
34 34 before do
35   - @hook = Factory :web_hook, :project => @project
  35 + @hook = Factory :project_hook, :project => @project
  36 + stub_request(:post, @hook.url)
36 37 visit project_hooks_path(@project)
37 38 click_link "Test Hook"
38 39 end
... ...
spec/workers/post_receive_spec.rb
... ... @@ -22,14 +22,14 @@ describe PostReceive do
22 22 Key.stub(find_by_identifier: nil)
23 23  
24 24 project.should_not_receive(:observe_push)
25   - project.should_not_receive(:execute_web_hooks)
  25 + project.should_not_receive(:execute_hooks)
26 26  
27 27 PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id).should be_false
28 28 end
29 29  
30 30 it "asks the project to execute web hooks" do
31 31 Project.stub(find_by_path: project)
32   - project.should_receive(:execute_web_hooks).with('sha-old', 'sha-new', 'refs/heads/master', project.owner)
  32 + project.should_receive(:execute_hooks).with('sha-old', 'sha-new', 'refs/heads/master', project.owner)
33 33  
34 34 PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id)
35 35 end
... ...