From ab032256da9f24351871143058343f7463f9d7fc Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 13 May 2014 11:01:40 +0300 Subject: [PATCH] Add some tests for merge API --- CHANGELOG | 1 + lib/api/merge_requests.rb | 4 ++-- spec/requests/api/merge_requests_spec.rb | 15 +++++++++++---- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 72bd698..91a7a22 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -14,6 +14,7 @@ v 6.9.0 - Fix wiki backup skip bug - Two Step MR creation process - Remove unwanted files from satellite working directory with git clean -fdx + - Accept merge request via API (sponsored by O'Reilly Media) v 6.8.0 - Ability to at mention users that are participating in issue and merge req. discussion diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 3dffe7b..7fb135b 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -34,7 +34,7 @@ module API when "closed" then user_project.merge_requests.closed when "merged" then user_project.merge_requests.merged else user_project.merge_requests - end + end present paginate(mrs), with: Entities::MergeRequest end @@ -129,7 +129,7 @@ module API :push_code end - if can?(current_user, action, project) + if can?(current_user, action, user_project) if merge_request.unchecked? merge_request.check_if_can_be_merged end diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index db7c30e..b47cbbe 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -183,11 +183,18 @@ describe API::API, api: true do end end - describe "PUT /projects/:id/merge_request/:merge_request_id to merge MR" do - it "should return merge_request" do - put api("/projects/#{project.id}/merge_request/#{merge_request.id}", user), state_event: "merge" + describe "PUT /projects/:id/merge_request/:merge_request_id/merge" do + it "should return merge_request in case of success" do + MergeRequest.any_instance.stub(can_be_merged?: true, automerge!: true) + put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user) response.status.should == 200 - json_response['state'].should == 'merged' + end + + it "should return 405 if branch can't be merged" do + MergeRequest.any_instance.stub(can_be_merged?: false) + put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user) + response.status.should == 405 + json_response['message'].should == 'Branch cannot be merged' end end -- libgit2 0.21.2