diff options
author | Ariejan de Vroom <ariejan@ariejan.net> | 2012-03-01 16:43:04 +0100 |
---|---|---|
committer | Ariejan de Vroom <ariejan@ariejan.net> | 2012-03-01 16:43:04 +0100 |
commit | 219ac1898095355ad9fc5c9f2ae08d9428b33090 (patch) | |
tree | cbfbba0b0c4fa2da30204f528ecd9785ef7044bd | |
parent | 4e5597b852939d04535cc8453bb288da41654de7 (diff) | |
download | gitlab-ce-219ac1898095355ad9fc5c9f2ae08d9428b33090.tar.gz |
Updated specs for post_receive worker
-rw-r--r-- | spec/workers/post_receive_spec.rb | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/spec/workers/post_receive_spec.rb b/spec/workers/post_receive_spec.rb index c28273d5e81..6b833d7229a 100644 --- a/spec/workers/post_receive_spec.rb +++ b/spec/workers/post_receive_spec.rb @@ -8,24 +8,37 @@ describe PostReceive do end end - context "web hooks" do - let(:project) { Factory :project } - before do - @key = Factory :key, :user => project.owner - @key_id = @key.identifier + context "web hook" do + let(:project) { Factory.create(:project) } + let(:key) { Factory.create(:key, :user => project.owner) } + let(:key_id) { key.identifier } + + it "fetches the correct project" do + Project.should_receive(:find_by_path).with(project.path).and_return(project) + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id) end - it "it retrieves the correct project" do - Project.should_receive(:find_by_path).with(project.path) - Key.should_receive(:find_by_identifier).with(project.path) - PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', @key_id) + it "does not run if the author is not in the project" do + Key.stub(find_by_identifier: nil) + + project.should_not_receive(:observe_push) + project.should_not_receive(:execute_web_hooks) + + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id).should be_false end it "asks the project to execute web hooks" do Project.stub(find_by_path: project) - project.should_receive(:execute_web_hooks).with('sha-old', 'sha-new', 'refs/heads/master', @key_id) + project.should_receive(:execute_web_hooks).with('sha-old', 'sha-new', 'refs/heads/master', key_id) + + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id) + end + + it "asks the project to observe push/create event data" do + Project.stub(find_by_path: project) + project.should_receive(:observe_push).with('sha-old', 'sha-new', 'refs/heads/master', key_id) - PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', @key_id) + PostReceive.perform(project.path, 'sha-old', 'sha-new', 'refs/heads/master', key_id) end end end |