Commit 219ac1898095355ad9fc5c9f2ae08d9428b33090

Authored by Ariejan de Vroom
1 parent 4e5597b8

Updated specs for post_receive worker

Showing 1 changed file with 24 additions and 11 deletions   Show diff stats
spec/workers/post_receive_spec.rb
@@ -8,24 +8,37 @@ describe PostReceive do @@ -8,24 +8,37 @@ describe PostReceive do
8 end 8 end
9 end 9 end
10 10
11 - context "web hooks" do  
12 - let(:project) { Factory :project }  
13 - before do  
14 - @key = Factory :key, :user => project.owner  
15 - @key_id = @key.identifier 11 + context "web hook" do
  12 + let(:project) { Factory.create(:project) }
  13 + let(:key) { Factory.create(:key, :user => project.owner) }
  14 + let(:key_id) { key.identifier }
  15 +
  16 + it "fetches the correct project" do
  17 + Project.should_receive(:find_by_path).with(project.path).and_return(project)
  18 + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id)
16 end 19 end
17 20
18 - it "it retrieves the correct project" do  
19 - Project.should_receive(:find_by_path).with(project.path)  
20 - Key.should_receive(:find_by_identifier).with(project.path)  
21 - PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', @key_id) 21 + it "does not run if the author is not in the project" do
  22 + Key.stub(find_by_identifier: nil)
  23 +
  24 + project.should_not_receive(:observe_push)
  25 + project.should_not_receive(:execute_web_hooks)
  26 +
  27 + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id).should be_false
22 end 28 end
23 29
24 it "asks the project to execute web hooks" do 30 it "asks the project to execute web hooks" do
25 Project.stub(find_by_path: project) 31 Project.stub(find_by_path: project)
26 - project.should_receive(:execute_web_hooks).with('sha-old', 'sha-new', 'refs/heads/master', @key_id) 32 + project.should_receive(:execute_web_hooks).with('sha-old', 'sha-new', 'refs/heads/master', key_id)
  33 +
  34 + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id)
  35 + end
  36 +
  37 + it "asks the project to observe push/create event data" do
  38 + Project.stub(find_by_path: project)
  39 + project.should_receive(:observe_push).with('sha-old', 'sha-new', 'refs/heads/master', key_id)
27 40
28 - PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', @key_id) 41 + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id)
29 end 42 end
30 end 43 end
31 end 44 end