Commit ab032256da9f24351871143058343f7463f9d7fc

Authored by Dmitriy Zaporozhets
1 parent 5880d7df

Add some tests for merge API

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
CHANGELOG
... ... @@ -14,6 +14,7 @@ v 6.9.0
14 14 - Fix wiki backup skip bug
15 15 - Two Step MR creation process
16 16 - Remove unwanted files from satellite working directory with git clean -fdx
  17 + - Accept merge request via API (sponsored by O'Reilly Media)
17 18  
18 19 v 6.8.0
19 20 - Ability to at mention users that are participating in issue and merge req. discussion
... ...
lib/api/merge_requests.rb
... ... @@ -34,7 +34,7 @@ module API
34 34 when "closed" then user_project.merge_requests.closed
35 35 when "merged" then user_project.merge_requests.merged
36 36 else user_project.merge_requests
37   - end
  37 + end
38 38  
39 39 present paginate(mrs), with: Entities::MergeRequest
40 40 end
... ... @@ -129,7 +129,7 @@ module API
129 129 :push_code
130 130 end
131 131  
132   - if can?(current_user, action, project)
  132 + if can?(current_user, action, user_project)
133 133 if merge_request.unchecked?
134 134 merge_request.check_if_can_be_merged
135 135 end
... ...
spec/requests/api/merge_requests_spec.rb
... ... @@ -183,11 +183,18 @@ describe API::API, api: true do
183 183 end
184 184 end
185 185  
186   - describe "PUT /projects/:id/merge_request/:merge_request_id to merge MR" do
187   - it "should return merge_request" do
188   - put api("/projects/#{project.id}/merge_request/#{merge_request.id}", user), state_event: "merge"
  186 + describe "PUT /projects/:id/merge_request/:merge_request_id/merge" do
  187 + it "should return merge_request in case of success" do
  188 + MergeRequest.any_instance.stub(can_be_merged?: true, automerge!: true)
  189 + put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user)
189 190 response.status.should == 200
190   - json_response['state'].should == 'merged'
  191 + end
  192 +
  193 + it "should return 405 if branch can't be merged" do
  194 + MergeRequest.any_instance.stub(can_be_merged?: false)
  195 + put api("/projects/#{project.id}/merge_request/#{merge_request.id}/merge", user)
  196 + response.status.should == 405
  197 + json_response['message'].should == 'Branch cannot be merged'
191 198 end
192 199 end
193 200  
... ...